【问题标题】:Images not uploading to db in nodejs图像未上传到nodejs中的数据库
【发布时间】:2018-08-09 05:57:23
【问题描述】:

我想使用 put 方法编辑图像,但是当我给出路径时,它显示“文件名”未定义。图像更新但当我跳过编辑图像时,它显示文件名未定义

app.put('/about_update/:id',upload.single('avatar'),(req,res,next)=>{
console.log(res.file);
aboutus.findById(req.params.id,(err,data2)=>{   
    if(err){
       return res.send(err.message, '404 error from server');

        }
    data2.personName = req.body.personName;
    data2.designation = req.body.designation;
    data2.content = req.body.content;
    data2.avatar = req.file.filename;
    data2.save(function(err){
        if(err){
            res.send(err.message, 'err from server');
        }else{
            res.json({message:'updated successfully'});
        }       
    })

})

})

错误:

events.js:183 投掷者; // 未处理的“错误”事件 ^

TypeError:无法读取未定义的属性“文件名” 在 aboutus.findById (/var/www/html/gis-react-version/api/server.js:147:33) 在 /var/www/html/gis-react-version/api/node_modules/mongoose/lib/model.js:4451:16 在 process.nextTick (/var/www/html/gis-react-version/api/node_modules/mongoose/lib/query.js:2476:28)

【问题讨论】:

  • 这里的错误是什么?
  • 你能粘贴完整的错误吗?
  • 是的,我粘贴了

标签: javascript node.js express ecmascript-6 mono


【解决方案1】:
    if (req.file) {
       data.personName = req.body.personName;
       data.designation = req.body.designation;
       data.content = req.body.content;
       data.avatar = req.file.filename;
    }else{
       data.personName = req.body.personName;
       data.designation = req.body.designation;
       data.content = req.body.content;
   }
aboutus.findByIdAndUpdate(req.params.id, {
            $set: {data}
   }).then(() => {
        res.json({message:'updated successfully'});
     }, (err) => {
         res.json({message:'err from server'});
})

【讨论】:

    【解决方案2】:

    body-parser 处理 JSON 和 urlencoded 表单提交,而不是多部分(如果您正在上传图像,就会出现这种情况)。 因此它显示了这个问题。 为了使用它,你可以简单地使用multer 包。

    【讨论】:

    • 实际上我从 db 获得了数据,但我也想更改图像,这意味着上传到 db 的新图像只是在我仅上传图像时替换然后它没有得到任何错误但是当我跳过图像时上传然后它显示像上面的错误
    • 你有没有把它托管在某个地方以便我检查它?
    • 我还没有发布我只在本地签到
    猜你喜欢
    • 2013-06-28
    • 2016-09-05
    • 2013-04-26
    • 1970-01-01
    • 2016-08-28
    • 2016-08-03
    • 1970-01-01
    • 2018-06-27
    相关资源
    最近更新 更多