表达式multer无法读取undefined的属性'profileimage'

问题描述 投票:3回答:2

我正在尝试提交一个表单,其中包含一个文件输入,名称为profileimage,我使用快递4,快速生成器和multer。

在我的app.js中,我添加了multer,如下:

var multer = require('multer');
var upload = multer({ dest: './uploads' });

我正在关注的教程实际上设置了像这样的multer(在需要之后),但它给了我一个错误:

app.use(multer({dest: './uploads'}));

在我的相应文件中的routes文件夹中,我有以下内容:

router.post('/register', function(req, res, next) {
// get form values
var name = req.body.name;
var email = req.body.email;
var username = req.body.username;
var password = req.body.password;
var password2 = req.body.password2;

// check for image field
if (req.files.profileimage)
{
    console.log('Uploading file...');
...

但是,当我提交表单时,我收到以下错误:

Cannot read property 'profileimage' of undefined

它似乎无法理解req.files.profileimage,但我不知道为什么?

node.js express multer
2个回答
2
投票

multer的API在不久前发生了一些变化,因此一些教程仍然使用旧的API。

对于单个文件,您可以执行以下操作:

var uploads = multer({dest: './uploads'});

// ...

router.post('/register', uploads.single('profileimg'), function(req, res, next) {

   // ...

   if (req.file) {
     console.log('Profile image uploaded');
   }
});

有关其他方案的更多示例,请参阅multer documentation


2
投票
if (req.files && req.files.profileImage) {
// only if there are files
} else {
 // You should see this now
}
© www.soinside.com 2019 - 2024. All rights reserved.