NodeJS + Multer
大家好,我试图从React前端将图像上传到我的Node后端,但是我却不断收到此错误
Error: ENOENT: no such file or directory, open 'public/avatar/avatar-Captura de pantalla de 2018-07-18 11-16-36_-1532639921615.png'
这就是我在后端初始化multer的方式
// Initialize multer storage
const storage = multer.diskStorage({
destination: function(req, file, callback) {
callback(null, "./public/avatar");
},
filename: function(req, file, callback) {
callback(
null,
file.fieldname +
"-" +
file.originalname.replace(path.extname(file.originalname), "_") +
"-" +
Date.now() +
path.extname(file.originalname)
);
}
});
const upload = multer({ storage: storage });
我收到了这个
router.post(
"/",
upload.single("avatar"),
passport.authenticate("jwt", { session: false }),
(req, res) => {
//Code
})
这是我的React客户发出的Axios Post请求
PS:ProfileData和化身是我通过redux带来的有效载荷(我认为这不重要)
const image = new FormData();
image.append("avatar", avatar, avatar.name);
axios
.post("/api/profile", image, profileData)
答案 0 :(得分:0)
如果目录不存在,Multer不会创建目录。因此,如果没有,只需创建上载目录public/avatar
。