我正在尝试使用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)
有什么想法吗?
更新
以下是抓取文件的示例,但是,这仍然不包括强大的...
答案 0 :(得分:1)
它挂起的原因是因为你需要调用next()告诉Express继续。
还可以使用express(默认包含)中的bodyParser()中间件来获取文件。像这样:
exports.addItem = function(req, res, next){
if(req.files.length > 0)
{
// process upload
console.log(req.files);
}
next();
}