首页 > 解决方案 > 如何从服务器文件夹访问 React 公用文件夹

问题描述

我想使用 multer NodeJs 上传图像以响应公共文件夹。它在开发中很好,但是当我部署它时,它不起作用。看起来 multer 无法上传/引用公共文件夹。

这是我的文件夹结构:

/client
   /public
      /img
.
.
.
/routes
   /api
      /employee.js
server.js

这是我所做的:

服务器.js

// Access public folder
app.use(express.static("client/public/img"))

员工.js

// Set storage engine
const storage = multer.diskStorage({
  destination: function(req, file, cb) {
    cb(null, path.join(__dirname, "../../client/public/img/profilePicture"))
  },
  filename: (req, file, cb) => {
    cb(null, file.fieldname + path.extname(file.originalname))
  }
})

我从开发人员工具中看到了源代码,它没有上传文件,但它可以用于开发。

谢谢您的帮助!

标签: javascriptnode.jsreactjsexpress

解决方案


multer 可以从公用文件夹中获取参考,但您需要设置endpoint或路径才能上传到公用文件夹。例如要公开一个文件夹,你可以这样做: app.use('/endpoint/to/access/public/folder', express.static(path.resolve("client/public")))

另外,您server.js的文件夹位于根文件client夹中,因此您可以执行以下操作:

app.use('/public', express.static(path.join(__dirname,'client/public')));


推荐阅读