无法在节点js中使用connect-busboy

时间:2014-08-25 09:41:48

标签: javascript node.js express busboy

我想在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(& #39; 4')在console.log(' 1')之后逐步执行。我无法理解为什么会发生这种情况,因为我认为req.busboy.on是使用回调功能实现的,因此每次都应该执行代码。

请问我帮忙吗?

修改1:

Okk ...我的上述问题已解决,但现在,我无法使用req.body获取表单的其他字段。这是空的json。我也尝试了multer,但我无法正常运行。

1 个答案:

答案 0 :(得分:1)

Okk ....这是我的不好,问题是当我提交空表格时,程序崩溃了。为此,我需要做一些检查。