busboy没有开火场,文件事件

时间:2014-10-18 06:38:06

标签: 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!');
  });
});

1 个答案:

答案 0 :(得分:3)

您没有看到任何数据的原因是因为您已经在使用multer模块,该模块也会解析multipart/form-data个请求,并将文件保存到磁盘。如果您未使用multer并希望在代码中显示时手动使用busboy,则需要删除app.use(multer());行。