NodeJs+React multer 设置报错
NodeJs+React multer settings err
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
})
这是我的 Axios Post 来自我的 React 客户端的请求
PS: ProfileData 和 avatar 是我通过 redux 带到这里的有效载荷(我认为这不重要)
const image = new FormData();
image.append("avatar", avatar, avatar.name);
axios
.post("/api/profile", image, profileData)
Multer 不会创建不存在的目录。因此,如果没有,只需创建上传目录,在您的情况下为 public/avatar
。
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
})
这是我的 Axios Post 来自我的 React 客户端的请求
PS: ProfileData 和 avatar 是我通过 redux 带到这里的有效载荷(我认为这不重要)
const image = new FormData();
image.append("avatar", avatar, avatar.name);
axios
.post("/api/profile", image, profileData)
Multer 不会创建不存在的目录。因此,如果没有,只需创建上传目录,在您的情况下为 public/avatar
。