我想在node.js中使用带有express的formidable来实现上传图片功能,
我所做的是:
app.configure(function () {
app.use(express.static(__dirname + "/media"));
app.use(express.bodyParser());
})
app.post('/upload', function (req, res) {
var form = new formidable.IncomingForm();
form.parse(req, function(err, fields, files){
console.log("log in parse");
console.log("fields type is " + typeof fields);
console.log("files type is " + typeof files);
console.log(files.image);
if (err) return res.send('You found error');
});
})
使用此代码,图像可以成功上传,但form.parse
函数似乎没有被调用,因为log
没有被调用
为什么?我的代码出了什么问题?
答案 0 :(得分:2)
快递3 bodyParser()
在内部使用formidable
。
所以这应该有效:
view.jade
form#fileupload(enctype="multipart/form-data")
input(type="hidden",name="user[id]", value="1")
input(type="file",name="photo[file]")
app.js
app.post('/upload', function (req, res) {
var userId = req.body.user.id;
var photo = req.files.photo.file;
});