javascript - 无法在 Node js 中使用 connect-busboy

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

请帮我一下吗?

编辑1:

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

最佳答案

好吧......这是我的错,问题是当我提交空表单时,程序崩溃了。为此,我需要进行一些检查。

关于javascript - 无法在 Node js 中使用 connect-busboy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25483078/

相关文章:

javascript - 如何在 JQuery-Ui 中设置添加按钮的样式

node.js - 通过在 Mongodb 中应用条件,使用 $find 查询嵌套对象

javascript - 是否可以在Node.js上使用js资源或者react Native?

node.js - 缺少socket.io.js

javascript - 在 ExpressJS 中将变量发送到路由器

javascript - 如何将八个标签的输入值添加到数组中,然后得到数组的素数? JavaScript

javascript - 无法列出 window.document 属性 - 为什么?

javascript - 在 typescript 中使用express中的回调函数数组

node.js - 在 Node/Express 服务器中使用 async/await 是个坏主意吗?

javascript - 复选框无法选中或直接单击复选框取消选中?