【发布时间】:2023-03-03 00:53:02
【问题描述】:
我的 Node.js 应用在一段时间后不断丢失静态图像(.jpg、.png...)。它不会在我的本地 win10 桌面甚至 heroku 上丢失任何图像,我的 webpack bundle.js 是从相同的静态路由(/pub 或 /dist)提供的,它们工作得很好。不知何故,只有静态图像,当我第一次上传时,它们在最初的几分钟内还不错,然后过了一会儿,它就消失了。我使用 express.static 进行静态路由声明,使用 multer 进行文件上传。用于测试的文件都是小写.jpg(因为我听说heroku随意更改所有大写扩展名)所以我不知道是什么导致了问题。
服务器代码:
const storage = multer.diskStorage({
destination: (req,file,cb)=>{
cb(null,'pub/')
},
filename: (req,file,cb)=>{
cb(null,Date.now() + file.originalname)
}
})
const upload = multer({storage:storage})
//access to static files
app.use('/pub', express.static(pubDir))
app.use('/dist', express.static(dstDir))
app.post('/modwimg',upload.any(),(req,res,next)=>{
//here I connect filename from files array to db
})
如果有客户端请求,服务器会从数据库中获取文件名并将“/pub/”放在它前面。它在我的本地机器和heroku上都可以正常工作。只是heroku上的图像会在一段时间后消失。
【问题讨论】:
标签: node.js express heroku multer