图片没有上传到nodejs中的数据库
Images not uploading to db in nodejs
我想使用 put 方法编辑图像,但是当我给出路径时,它显示 'filename' undefined 。图像正在更新,但是当我跳到编辑图像时,它显示文件名未定义
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
扔呃; // 未处理的 'error' 事件
^
TypeError: 无法读取未定义的 属性 'filename'
在 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)
body-parser 处理 JSON 和 urlencoded 表单提交,而不是多部分(如果您上传图片就是这种情况)。
因此它显示了这个问题。
为了使用它,你可以简单地使用 multer 包。
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'});
})
我想使用 put 方法编辑图像,但是当我给出路径时,它显示 'filename' undefined 。图像正在更新,但是当我跳到编辑图像时,它显示文件名未定义
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 扔呃; // 未处理的 'error' 事件 ^
TypeError: 无法读取未定义的 属性 'filename' 在 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)
body-parser 处理 JSON 和 urlencoded 表单提交,而不是多部分(如果您上传图片就是这种情况)。 因此它显示了这个问题。 为了使用它,你可以简单地使用 multer 包。
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'});
})