快速上传文件

时间:2012-06-21 00:39:46

标签: node.js express

我正在尝试使用express和formidable上传文件(eventualy转发到MongoDB和GridFS)。我首先创建一个带有类型文件字段的表单。关于该领域的行动,我使用以下路线......

exports.addItem = function(req, res, next){
  var form = new formidable.IncomingForm(),
    files = [],
    fields = [];
  form
    .on('file', function(field, file) {
      console.log(field, file);
     })
    .on('end', function() {
      console.log('-> upload done');
    });
}

一切运行正常,但是当我发布时,我在控制台中看不到任何东西,它就会挂起。

该路线如下所示......

app.post('/item/add', routes.addItem, routes.getPlaylist, routes.index)

有什么想法吗?

更新

以下是抓取文件的示例,但是,这仍然不包括强大的...

https://gist.github.com/2963261

1 个答案:

答案 0 :(得分:1)

它挂起的原因是因为你需要调用next()告诉Express继续。

还可以使用express(默认包含)中的bodyParser()中间件来获取文件。像这样:

exports.addItem = function(req, res, next){
  if(req.files.length > 0)
  {
     // process upload
     console.log(req.files);
  }
  next();
}