2012-06-21 6 views
1

Я пытаюсь загрузить файлы, используя экспресс и грозный (в случае необходимости пересылка в 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) 

Любые идеи?

UPDATE

Вот пример захвата файла, однако, это еще не включает в себя превосходно ...

https://gist.github.com/2963261

ответ

1

Причина, по которой висит потому, что вам нужно позвонить next(), чтобы сообщить Express продолжить.

Также используйте промежуточное программное обеспечение bodyParser() в экспресс (включено по умолчанию) для получения файлов. Что-то вроде этого:

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

Хорошая уловка, но это была только опечатка, а не причина – Jackie

Смежные вопросы