javascript - 图像未上传到nodejs中的数据库
问题描述
我想使用 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:无法在 /var/www/html/gis-react-的 aboutus.findById (/var/www/html/gis-react-version/api/server.js:147:33) 处读取未定义的属性“文件名”版本/api/node_modules/mongoose/lib/model.js:4451:16 at process.nextTick (/var/www/html/gis-react-version/api/node_modules/mongoose/lib/query.js:2476:28 )
解决方案
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'});
})
推荐阅读
- typescript - 如何在打字稿上重新连接(重新订阅)到 websocket
- mysql - SQL连接五张表
- php - 必须配置路径“hwi_oauth”处的子节点“resource_owners”
- dns - DNS服务器部署在哪里
- javascript - 如何在 React 中的窗口调整大小事件中设置 div 父节点以更改其宽度?
- haskell - Haskell标识符中\的含义
- typescript - Angular2 中的两个(或更多)异步调用
- c# - 如何在字符串变量中复制“语音到文本”文本以进行字符串匹配?
- java - 我的 libgdx 游戏在桌面上运行但不在 android 中
- javascript - 使用 Promise.all() 将多个图像上传到 AWS s3。如何处理只有一张图片无法上传的错误?