1

Express と手ごわい (最終的に 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

4

1 に答える 1

1

ハングしている理由は、 next() を呼び出して Express に続行するように指示する必要があるためです。

また、express の bodyParser() ミドルウェア (デフォルトで含まれる) を使用して、ファイルを取得します。このようなもの:

exports.addItem = function(req, res, next){
  if(req.files.length > 0)
  {
     // process upload
     console.log(req.files);
  }
  next();
}
于 2012-06-21T01:33:05.187 に答える