javascript - 如何从服务器文件夹访问 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))
}
})
我从开发人员工具中看到了源代码,它没有上传文件,但它可以用于开发。
谢谢您的帮助!
解决方案
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')));
推荐阅读
- node.js - mongodb中的递减值
- ios - 在 didSelectItemAt 中选择单元格时取消选择 cellForItemAt 中的单元格
- sql-server - tempdb 在已提交读快照隔离下没有增长
- python - urllib 模块中的请求类不存在
- python - 使用 django 将 PostGis Polygon 转换为传单地图
- git - Magit 不考虑 ~/.gitignore
- docker-compose - 让 docker-compose up 只运行某些容器
- python - 使用 `print()` 写入以二进制模式打开的文件
- python - 读取文件并转换值“'list' 对象没有属性 'find' on”
- assembly - 关于简单浮点加载指令的困惑