NodeJs + React multer设置错误

时间:2018-07-26 21:27:48

标签: node.js reactjs express multer

  

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)

1 个答案:

答案 0 :(得分:0)

如果目录不存在,Multer不会创建目录。因此,如果没有,只需创建上载目录public/avatar