0

NodeJS + 穆特

大家好,我试图从 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 请求

PS:ProfileData 和 avatar 是我通过 redux 带来的有效载荷(我认为这不重要)

const image = new FormData();
  image.append("avatar", avatar, avatar.name);
  axios
    .post("/api/profile", image, profileData)
4

1 回答 1

0

如果目录不存在,Multer 不会创建目录。因此,如果没有,只需创建适合public/avatar您的上传目录。

于 2018-07-26T22:34:33.460 回答