我测试了一个带有文件名的帖子,但在poster中,如果我不添加图像,那么我就有一个未定义的图像,这没关系。但如果图像没有通过null,我就无法发送它。
这是我的控制器,文件名为
module.exports.createComment = async (req, res) => {
try {
if (!req.body.message) {
res.status(400).send({
message: "Content can not be empty!"
});
}
let { id, message, date, image} = req.body;
image = `${req.protocol}://${req.get("host")}/images/${req.file.filename}`,
Comment.create({
id, message, date, image
}).then((comment) => res.status(201).send(comment))
} catch (error) {
console.log(error);
return res.send(`Error: ${error}`);
}
};
Postman上没有图像的我的响应:错误:类型错误:无法读取未定义的属性"filename">
您应该检查req.file
,因为访问filename
。因为当你不通过它时,req.file
将是无法访问filename
的undefined
let { id, message, date, image } = req.body;
if (req.file) {
image = `${req.protocol}://${req.get("host")}/images/${req.file.filename}`
} else {
image = null;
}