我正在尝试提交一个表单,其中包含一个名称为 profileimage 的文件输入,我正在使用 express 4、express 生成器和 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 ,但不知道为什么?

最佳答案

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

关于node.js - express multer 无法读取未定义的属性 'profileimage',我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33962841/

10-16 06:53