似乎没有执行多方格式解析中的回调(快递3)

时间:2014-01-13 15:50:41

标签: node.js express

我正在学习处理快递3中的文件上传。 module.exports.upload是我的路由处理程序,用于POST请求到' / image / upload' :

var multiparty = require('multiparty');
module.exports.uploadPage = function (req, res) {
    res.render('image/image', {file_content: null });
}
module.exports.upload = function (req, res) {
    var form = new multiparty.Form();
    form.parse(req, function(err, fields, files){
        console.log('inside form parsing call back');
        res.writeHead(200, {'content-type': 'text/plain'});
        res.end('received upload:\n\n');
    });
    if(req.method == 'GET') res.render('image/image');
}

这是我的表格:

<form action="/image/upload" enctype="multipart/form-data" method="post">
    <input type="file" name="thumbnail" multiple="multiple" />
    <input type="submit"/>
</form>

console.log(&#39;内部表单解析回调&#39;); 永远不会执行,因为终端中没有记录任何内容。我使用开发设置,POST请求日志甚至没有记录到控制台。

顺便说一句,我将我的代码与示例here进行了比较。我相信我做得对,但我可能是错的。

在这种情况下似乎不会执行回调。出了什么问题?

谢谢!

1 个答案:

答案 0 :(得分:0)

让我回答我的问题。上面的代码很好,但它不起作用的原因是因为我添加了

app.use(express.multipart());
app.js中的

然后添加

var multiparty = require('multiparty');

再次在控制器中,即image.js

这可能对你没有帮助,但是带走的是只需加载(需要(...))多方需要处理表单。不要使用app.use,请使用require,如本文档所示:

multiparty on github