gpt4 book ai didi

javascript - Express.js 和 multer : how to know when the files are all uploaded?

转载 作者:数据小太阳 更新时间:2023-10-29 05:12:14 25 4
gpt4 key购买 nike

我正在使用 Multer 模块进行文件上传。虽然一切正常,但在他们的 github 页面末尾有一条警告,内容如下:“警告:req.body 在文件上传完成后被完全解析。过早地访问 req.body 可能会导致错误。”

这让我非常担心。我只是找不到让 .post 中间件知道文件何时上传并且 req.body 可以使用的方法。这是我的代码:

应用程序.js:

app.use(multer({ 
dest: './uploads/',
rename: function (fieldname, filename) {
return filename.replace(/\W+/g, '-').toLowerCase() + Date.now();
},
putSingleFilesInArray: true
})
);

上传.js:

router.route('/')
.get(function(req, res){
res.render('uploads');
})
.post(function(req, res){
//how to wait here for the file to upload?
});

虽然我知道 onParseEnd,但我不知道如何实现它,所以我至少有一些关于正在完成的上传过程的信息。

最佳答案

Multer 是路由器链的一部分。这意味着 express 将首先执行 multer,只有当 multer 完成对表单的解析后,它才会继续执行到您的 .post() 处理程序。页面上的警告用于从多个回调访问 req.body,例如 onFileUploadData() 等。因此,执行顺序为:

  • onParseStart
  • onFileUploadStart/onFileUploadData...
  • onFileUploadComplete
  • onParseEnd
  • 你的 .post() 处理程序

关于javascript - Express.js 和 multer : how to know when the files are all uploaded?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29452651/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com