[英]Express Route returns status code 500 with generic 'Error' when file is sent as 'multipart/form-data'
[英]Interal server error when using multipart/form-data Express/KrakenJS
使用multipart / form-data进行发布请求时遇到问题。 发出的任何发布请求仅返回错误:禁止。 这是控制台输出
Error:Forbidden
127.0.0.1 - - [Sat, 12 Apr 2014 20:08:33 GMT] "POST /addComic HTTP/1.1" 500 666 "http://localhost:8000/admin" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.116 Safari/537.36"
在我的index.js文件中,我包含了我需要的所有中间件
server.use(express.urlencoded());
server.use(express.json());
server.use(express.multipart());
在我的控制器中,我只是将文件详细信息打印到控制台。
app.post('/addComic', auth.isAdmin, function(req, res) {
console.log(req.files.comicFile);
});
这是表格
<form action="/addComic" method="POST" enctype="multipart/form-data" class="form-horizontal">
<input type="hidden" id="_csrf" name="_csrf" value="{_csrf}"/>
<div class="form-group">
<input type="file" class="form-control" id="comicFile" name="comicFile">
</div>
<input type="submit" class="btn btn-success" value="Add comic">
</form>
我很困惑为什么会收到此错误。 任何帮助是极大的赞赏
问题不完全相同,但这可能会有所帮助。
我在Kraken.js中遇到类似的问题。 text/plain
表单工作正常,但multipart/form-data
无效。 我得到的错误是CSRF token mismatch
因此听起来像是类似的(过去我遇到_csrf问题时,我收到了Error: Forbidden
消息)。 我注意到(通过在lusca代码中放置一个断点),即使我看到它是从客户端发布的, req.body
对象还是空的。
我通过恢复到已安装的node_modules的旧版本来解决此问题(在新的工作目录上进行npm install
后,我开始遇到此问题,因此获得了较新版本的依赖项。我怀疑问题出在lusca软件包中。 。当我恢复为“〜0.1.1”(在kraken-js
的package.json
定义)时,它再次开始工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.