5

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


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!');
  });
});
4

1 回答 1

4

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

于 2014-10-18T07:30:25.797 回答