我尝试使用Multer中间件在Express JS中上传图像,但在尝试设置绝对最简单的用例时遇到了几个问题。
我收到的唯一错误是:' POST / upload 500',我的POST回调永远不会输入..所以我甚至不确定如何调试这种情况。我的代码如下:
app.js:
var express = require('express');
var multer = require('multer');
var upload = multer({ dest: './public/photos/'}); // valid dir
app.post('/upload', upload.single('photo'), function(req, res, next){
// This callback is never reached. 500 error.
console.log(req.body);
console.log(req.files);
});
upload.ejs:
<form method='post' enctype='multipart/form-data'>
<p><input type='text', name='photo[name]', placeholder='Name'/></p>
<p><input type='file', name='photo[image]'/></p>
<p><input type='submit', value='Upload'/></p>
</form>
我无法找出这与当前的npm Multer设置文档之间的任何区别。不仅仅是“如何”和#39;解决这个问题,我真的很想知道为什么这不起作用,以及导致它失败的问题。
欢迎所有帮助。谢谢!!!
答案 0 :(得分:1)
解决!首先,我的输入名称不匹配: upload.single(&#39;照片[图像]&#39)。
导致500错误的原因。之后我遇到了一些问题,这些问题是由使用过时的req.file数据包造成的,并且可以通过引用最新的multer文档轻松解决。