1

我正在尝试使用 Multer 中间件在 Express JS 中上传图像,但在尝试设置绝对最简单的用例时遇到了几个问题。

我收到的唯一错误是:'POST /upload 500',并且从未输入过我的 POST 回调。所以我什至不确定如何调试这种情况。我的代码如下:

应用程序.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);
});

上传.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 设置文档之间的任何区别。不仅仅是“如何”解决这个问题,我真的很想知道为什么这不起作用,以及导致它失败的幕后发生的事情。

欢迎大家帮忙。谢谢你!!!

4

1 回答 1

1

解决了!一方面,我的输入名称不匹配:upload.single('photo[image]')。

这就是导致 500 错误的原因。在此之后我遇到了几个问题,这些问题是由使用过时的 req.file 数据包引起的,通过参考最新的 multer 文档很容易解决。

于 2015-08-18T08:32:07.467 回答