【发布时间】:2019-06-19 08:39:59
【问题描述】:
我已经在 NodeJs 中创建了一个用于文件上传的 REST API 工作正常,但是有一个问题,如果我上传超过 2 个图像,则只有 2 个,3 个被上传,有时 1 个被损坏。我认为我的循环运行得太快了。 打击是我的代码:
app.post('/img-upload', function(req, res) {
if (!req.files)
return res.status(400).send({"status":"false", "data":"Image Not Found"});
// Use the mv() method to place the file somewhere on your server
for(var key in req.files) {
thisFile = req.files[key];
let name = +new Date();
thisFile.mv('./images/' + name++ +'.png', function(err) {
if (err) {
res.send(err);
}
});
}
res.json({"status":"File uploaded!"});
});
使用的模块:express-fileupload
【问题讨论】:
-
res.json()可能会导致请求在文件上传完成之前关闭。您必须等到每个回调完成。 -
你能解释更多吗!
-
两个文件可能被移动到同一个目标路径。就像你说的,循环飞得很快。对
new Date()的调用很可能会在两次迭代中返回相同的值。一种解决方案是将计数器变量name移到循环体之外。
标签: javascript node.js rest express for-loop