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