我想将个人资料图片放入mongodb的users集合中,我想在用户获取其个人资料时检索此图片。
var storage = multer.diskStorage({
destination: (req, file, cb) => {
cb(null, 'uploads/')
},
filename: (req, file, cb) => {
cb(null, file.fieldname + '-' + Date.now()+ path.extname(file.originalname));
}
});
var upload = multer({ storage: storage });
router.put('/user/profile/img/:email', upload.single('profileimg'), (req, res, next) => {
// console.log(req.file);
Users.findOneAndUpdate({ email: req.params.email }, req.file.filename).then(() => {
Users.findOne({ email: req.params.email }).then((resp, err) => {
res.send(resp);
})
})
})
图像正在保存在我api的上载文件夹中,但没有保存在数据库中。
答案 0 :(得分:2)
findOneAndUpdate
函数的第二个参数必须是一个具有要更新的字段和值的对象:
Users.findOneAndUpdate({ email: req.params.email }, { profileimg: req.file.filename }).then(...)
答案 1 :(得分:0)
您可以按照以下代码进行操作:
router.put('/user/profile/img/:email', upload.single('profileimg'), async (req, res, next) => {
try {
// check your file is uploaded
// check your field
console.log(req.file);
const result = await Users.findOneAndUpdate({ email: req.params.email }, {$set: { profileimage : req.file.filename}}, { returnOriginal: false})
res.send(result)
} catch(ex) {
res.status(500).send(ex.message);
}
})
注意:为此{$set: { profileimage : req.file.filename}}
我希望它能为您提供帮助。