【发布时间】:2014-08-25 09:41:48
【问题描述】:
我想在 node.js 中使用 connect-busboy 上传图片。使用参考 https://www.npmjs.org/package/connect-busboy ,我编写了代码:
router.post('/upload', function(req, res) {
req.pipe(req.busboy);
console.log('1')
req.busboy.on('file', function(fieldname, file, filename) {
console.log('2')
var fstream = fs.createWriteStream('../uploads/' + filename);
file.pipe(fstream);
fstream.on('close', function () {
res.redirect('back');
});
});
console.log('4')
});
但是当我尝试上传图像时,大多数时候图像会在给定的路径中上传,但有时,由于 js 调用的异步性质,req.busboy.on 中的代码被跳过并 console.log(' 4') 在console.log('1') 之后直接执行。我不明白为什么会这样,因为我认为 req.busboy.on 是使用回调功能实现的,因此每次都应该执行代码。
请帮帮我?
编辑 1:
好的...我的上述问题已解决,但现在,我无法使用 req.body 获取表单的其他字段。它是空的json。我也尝试过 multer,但我无法正常运行它。
【问题讨论】:
标签: javascript node.js express busboy