如何从服务器文件夹访问React公用文件夹

时间:2019-07-23 00:13:19

标签: javascript node.js reactjs express

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

这是我的文件夹结构:

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

这就是我所做的:

server.js

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

employee.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))
  }
})

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

谢谢您的帮助!

1 个答案:

答案 0 :(得分:0)

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

此外,您的server.jsclient文件夹一样都位于根文件夹中,因此您可以执行以下操作:

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