如果提供了图片,我想创建一个帖子并上传。
如果我确实上传了图像,一切都很好,但如果我不上传,我会收到这个错误:
UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'image' of null
我知道这与async/await
有关,但我不知道如何重写它,或者问题具体是什么?
app.post("/posts/create", async (req, res) => {
let image = req.files.image;
if (image !== null) {
image.mv(
path.resolve(__dirname, "public/images", image.name)
);
}
await Post.create(req.body);
res.redirect("/");
});
这不是因为async/await,这只是因为你的请求中没有任何.文件,所以你只需要一个中间件来处理多部分/表单数据,比如multer,然后通过app.post传递中间件,这样你就可以访问req.files,如果你想把图像上传到cloudinary这样的服务器,你可以使用multercloudinary存储。