在node.js中使用formidable上传图片失败

时间:2012-12-25 02:34:03

标签: image node.js upload express formidable

我想在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没有被调用

为什么?我的代码出了什么问题?

1 个答案:

答案 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;
    });
相关问题