我正在使用Node.js开发一个Web应用程序。我用enctype="multipart/form-data"
写了一个隐藏的表单来上传一个文件和一些文本,但它的行为奇怪,我只能在herokuapp服务器上获得一个字段(表单中的名称)而不是我想要的多个字段。
客户端代码如下:
<form action="/target" method="post" enctype="multipart/form-data">
<input hidden type="file" name="file" id="file">
<input hidden type="text" name="A" id="A" value="AAA">
<input hidden type="text" name="B" id="B" value="BBB">
<input hidden type="text" name="C" id="C" value="CCC">
<input hidden type="submit" value="Submit">
</form>
服务器端代码如下:
app.post('/target', function(req, res, next) {
console.log(req.files.file.path);
console.log(req.body.A);
console.log(req.body.B);
console.log(req.body.C);
res.end();
})
我只能获得req.body.C
其他2个剩余的undefined
,但是当我在localhost上运行时它完全正常。
我使用multer来处理配置的多部分表单:
app.use(multer({dest:'./public/uploads/'}))
答案 0 :(得分:0)
请使用环境变量NODE_ENV=production
在本地运行您的服务器。这将运行您的服务器,就像它在生产中运行一样。然后尝试重现此问题。
另外需要考虑的是您正在使用的Express版本。 Express 4不再带有body parser中间件;你必须自己带来它。
道歉,提出建议作为答案。我不具备允许我发表评论所需的声誉。
答案 1 :(得分:0)
Heroku有一个只读文件系统。您可以编写的目录是./tmp或./log。试试吧,祝你好运!