如何避免 Node js 中强大功能的提前返回

     2023-02-19     96

关键词:

【中文标题】如何避免 Node js 中强大功能的提前返回【英文标题】:How to avoid early return on formidable functions in Node js 【发布时间】:2020-04-25 14:00:36 【问题描述】:

我使用以下代码在node js中上传和读取文件。除了从该方法提早返回外,它按预期工作。该方法在触发“fileBegin”和“file”事件之前返回。您能否告诉我需要对其进行哪些更改才能使其仅在文件上传和处理后才返回?

const form = new formidable.IncomingForm();

form.parse(req);
form.on('fileBegin', async function (name, file) 
...............

);
form.on('file', async function (name, file) 
...............

)
.on("end", function () 
...............
);


......................
......................
......................

 return "Success"

【问题讨论】:

【参考方案1】:

使用中间件

const fs = require('fs')
const fileType = require('file-type')
const multiparty = require('multiparty')
const uploadMiddleware = (request, response, next) => 
      if (request.method !== 'POST') 
        next()
        return
      

      const form = new multiparty.Form()
      form.parse(request, async (error, fields, files) => 
        if (error) throw new Error(error);

         //  const file = files.file[0]
          // const buffer = fs.readFileSync(file.path)
          // request.file = your file 

          next()
         catch (error) 
          return response.status(400).send(error)
        
      )
    
app.post('/upload', multipartUpload, yourController)

【讨论】:

谢谢法迪。我需要使用 Foarmidable 表单创建表单和事件触发。 谢谢法迪。但我需要使用强大的表单来进行文件上传和处理 重要的部分是在你不使用时将next 函数传递给控制器​​!

如何返回 Node.js 回调

】如何返回Node.js回调【英文标题】:HowtoreturnNode.jscallback【发布时间】:2015-07-1607:17:32【问题描述】:我有一个node.js方法,它使用mongoose来返回一些数据,问题是因为我在我的方法中使用回调,所以没有任何东西返回给客户端我... 查看详情

每次通过 Circle CI 创建 Docker 镜像时,如何避免 npm build node.js 包?

】每次通过CircleCI创建Docker镜像时,如何避免npmbuildnode.js包?【英文标题】:Howtoavoidnpmbuildnode.jspackageseverytimewhencreatingaDockerimageviaCircleCI?【发布时间】:2020-11-0402:20:33【问题描述】:我使用CircleCI通过AWSECSDocker容器部署我的Node.Js... 查看详情

如何正确配置服务器和浏览器以避免cors错误?获取 API + Node.js

】如何正确配置服务器和浏览器以避免cors错误?获取API+Node.js【英文标题】:Howtocorrectlyconfigureserverandbrowsertoavoidcorserrors?FetchAPI+Node.js【发布时间】:2019-12-1315:58:18【问题描述】:我试图从index.html进行一个简单的api调用,但无论... 查看详情

如何从私有存储库(Node.js)返回 Github 问题

】如何从私有存储库(Node.js)返回Github问题【英文标题】:HowtoReturnGithubIssuesfromPrivateRepository(Node.js)【发布时间】:2019-02-0409:51:12【问题描述】:我正在尝试使用Node.js从私人仓库返回Github问题列表。我能够返回一个repos列表,但... 查看详情

Socket.io node.js,如何避免记录连接时间或考虑页面刷新/多个套接字?

】Socket.ionode.js,如何避免记录连接时间或考虑页面刷新/多个套接字?【英文标题】:Socket.ionode.js,howtologconnectiontimesavoidoraccountforpagerefresh/multiplesockets?【发布时间】:2015-11-0214:22:51【问题描述】:现在,我完全被socket.io搞糊涂了... 查看详情

Node.js:如何从回调中正确返回对象?

】Node.js:如何从回调中正确返回对象?【英文标题】:Node.js:Howtoproperlyreturnanobjectfromwithinacallback?【发布时间】:2012-02-0215:00:49【问题描述】:我还在纠结回调。从回调函数中定义/返回对象的正确方法是什么?下面sn-p可以看到... 查看详情

如何使用 Node.js 从 Azure 函数返回 JSON 对象

】如何使用Node.js从Azure函数返回JSON对象【英文标题】:HowtoreturnaJSONobjectfromanAzureFunctionwithNode.js【发布时间】:2016-09-0606:22:44【问题描述】:使用AzureFunctions,您需要做什么才能从用node.js编写的函数返回正文中的JSON对象?我可以... 查看详情

Node.js 和 Express:异步操作后如何返回响应

】Node.js和Express:异步操作后如何返回响应【英文标题】:Node.jsandExpress:Howtoreturnresponseafterasynchronousoperation【发布时间】:2016-08-1816:39:57【问题描述】:我是Node.js的新手,所以我仍然在关注异步函数和回调。我现在的难题是如何... 查看详情

避免对 Node.js 中的存储过程进行 SQL 注入

...时间】:2019-06-2618:45:55【问题描述】:在调用存储过程时如何避免来自Node.js的SQL注入假设我在UI的前端输入了一些特殊字符例如:如果输入?true将被保存到数据库中如果输入??`true`将被保存到数据库中对于一些特殊字符,例如反... 查看详情

这是避免“你在提前返回后不小心调用了 React Hook 吗?”的安全方法吗?

】这是避免“你在提前返回后不小心调用了ReactHook吗?”的安全方法吗?【英文标题】:Isthisasafewaytoavoid"DidyouaccidentallycallaReactHookafteranearlyreturn?"【发布时间】:2019-09-2306:00:31【问题描述】:我写了一个这样的函数组件:... 查看详情

如何从 Node.js 中的 ajax 帖子返回成功

】如何从Node.js中的ajax帖子返回成功【英文标题】:HowtoreturnsuccessfromajaxpostinNode.js【发布时间】:2014-05-1406:49:11【问题描述】:我有这样的功能:exports.saveAction=function(req,res)varconn=mysql.createConnection(host:nconf.get("database:host"),//port:330... 查看详情

如何从 Node.js 中的函数返回状态码

】如何从Node.js中的函数返回状态码【英文标题】:HowtoreturnstatuscodefromfunctioninNode.js【发布时间】:2012-01-0218:42:12【问题描述】:我有这样的功能:functiongetStatusCode(site)varoptions=host:"127.0.0.1",port:8000,path:site,headers:Host:site;varstatus;http... 查看详情

如何在 Node.js 中从 MongoDB 返回 JSON?

】如何在Node.js中从MongoDB返回JSON?【英文标题】:HowtoreturnJSONfromMongoDBinNode.js?【发布时间】:2016-02-0121:30:54【问题描述】:我有一个名为pokemon的mongodb数据库和一个名为pokemons的集合。这是我尝试编写一个在mongodb中执行find()操作... 查看详情

如何在 Node.js 上建立网站?

】如何在Node.js上建立网站?【英文标题】:HowtobuildawebsiteonNode.js?【发布时间】:2012-01-3112:01:50【问题描述】:经过几年的PHP编程,我刚刚开始涉足Node.js,我想构建一个Node.js我下一个项目的应用程序,但我不知道该怎么做。是... 查看详情

如何编写一个在“返回”之前等待事件触发的 node.js 函数?

】如何编写一个在“返回”之前等待事件触发的node.js函数?【英文标题】:Howtowriteanode.jsfunctionthatwaitsforaneventtofirebefore\'returning\'?【发布时间】:2012-04-1317:20:00【问题描述】:我有一个节点应用程序,它不是一个Web应用程序-它... 查看详情

Node.js 内存泄漏?

...有返回,则取决于授权逻辑在完成操作时执行next()。为了避免写出错误数据,我只想传入一个可以调用的error()函数,它只是在 查看详情

Node.js/Mongoose 等待异步 For 循环

...调用,该变量将提前返回并保持为假。你能给我一个关于如何实现这一目标的提示吗 查看详情

javascript/node.js 中的 JSONP 解析

...如"jsonp([1,2,3])",并且我想检索第三个参数3,我该如何编写一个函数来为我做这件事?我想避免使用eval。我的代码(如下)在调试行上运行良好,但由于某种原因返回und 查看详情