0

我想在node.js中使用强大的express来实现上传图片的功能,

我要做的是:

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

为什么?我的代码有什么问题?

4

1 回答 1

2

express 3 bodyParser() uses formidable internally. So this should work:

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;
    });
于 2012-12-25T02:52:34.587 回答