node.js - 服务员不开火场,文件事件

标签 node.js express busboy

在下面的代码中,仅调用完成事件。

<小时/>
var Busboy = require('connect-busboy');

app.use(Busboy());

app.post('/fileupload', function(req, res) {
  var fstream;

  req.pipe(req.busboy);

  req.busboy.on('error', function(err){
    console.log(err);
  });

  req.busboy.on('field', function(fieldname, val, valTruncated, keyTruncated) {
    console.log("fieldname: " + fieldname); 
  });

  req.busboy.on('file', function (fieldname, file, filename) {
    console.log("filename: " + filename); 
    fstream = fs.createWriteStream(__dirname + '/files/' + filename);
    file.pipe(fstream);
    fstream.on('close', function () {
      res.redirect('back');
      console.log("fileupload end");
    });
  });

  req.busboy.on('finish', function() {
    console.log('Done parsing form!');
  });
});

最佳答案

您看不到任何数据的原因是您已经在使用 multer 模块,该模块还解析 multipart/form-data 请求,将文件保存到磁盘。如果您不使用 multer 并且想要按照代码中所示手动使用 busboy,则需要删除 app.use(multer() ); 行。

关于node.js - 服务员不开火场,文件事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26437025/

相关文章:

html - 将 session 中的数据插入到 vue-component

javascript - 从字符串中删除所有 ANSI 颜色/样式

node.js - 为什么我的 npm 需要几个小时才能安装依赖项?

angularjs - 当我将数据保存到 mongoDB 时,如何在我的代码中获取 _id 值

javascript - 为什么express在这个方法中显示 "error can not set headers after they are sent"?

node.js - 使用 vimeo 上传视频

javascript - 如何在nodejs上将busboy文件流转换为二进制对象

javascript - 如何处理 Node.js 中的文件上传中断

node.js - 如何重置pm2的id?

css - Express + nodeJS 从来没有得到我的静态文件