【问题标题】:express multer Cannot read property 'profileimage' of undefinedexpress multer无法读取未定义的属性“profileimage”
【发布时间】:2016-03-01 23:28:17
【问题描述】:

我正在尝试提交一个表单,其中包含一个名称为 profileimage 的文件输入,我使用的是 express 4、express generator 和 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


【解决方案1】:
if (req.files && req.files.profileImage) {
// only if there are files
} else {
 // You should see this now
}

【讨论】:

    【解决方案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。

    【讨论】:

    • 我尝试了类似的方法,但没有成功。这一切都去哪里了?正如我所说,我正在使用快速生成器进行网站设置,所以我包含了 multer 和 var uploads = multer({dest: './uploads'});在 app.js 文件中。我还尝试将它们包含在我的路由文件中(路由文件夹中的相应文件)并按照您的建议进行操作,但后来我得到了TypeError: uploads.single is not a function
    • 如果我没有在路由文件中包含 multer,那么它会给出另一个错误,说 ReferenceError: multer is not defined(即使它包含在 app.js 文件中)。但正如我所说,我确实将它包含在路由文件中,但随后出现上述错误。
    • 您安装了哪个版本的multer?也许它已经过时了。
    • 是的,我确实弄乱了其他版本,我需要在路由文件中使用 multer 而不是 app.js(这看起来很荒谬,但我想现在必须如此),而且它似乎正在工作,谢谢!
    • 遇到了同样的问题,这解决了问题,谢谢。
    猜你喜欢
    • 1970-01-01
    • 2018-08-18
    • 1970-01-01
    • 2021-07-30
    • 2021-03-24
    • 2018-07-22
    • 2022-12-07
    • 2021-03-29
    • 1970-01-01
    相关资源
    最近更新 更多