node.js - 在 Heroku Node.js 应用上上传图片时出错
问题描述
路线-
app.post('/add-product',(req,res)=>{
var image=randomstring.generate({
length: 12
});
var form = new formidable.IncomingForm();
form.parse(req, function (err, fields, files) {
var oldpath = files.pimage.path;
var newpath = __dirname;
var path=newpath.split('controllers');
path=path[0]+'/public/productimages/'+image+".jpg";
fs.readFile(oldpath, function (err, data) {
if (err) throw err;
// Write the file
fs.writeFile(path, data, function (err) {
if (err) throw err;
});
});
});
});
将图像上传到 Heroku 服务器时遇到了一些问题,在 Localhost 上一切正常。但是在 Heroku 上,当我上传图片时,我的应用程序在这些行上崩溃了。
fs.writeFile(path, data, function (err) {
if (err) throw err;
});
Heroku 日志截图:
将“/public.....”更改为“public/productimages/....”后
我得到:没有这样的文件或目录,打开'/app/public/productimages/8sRueNlG2k3F.jpg'
解决方案
这些错误通常是由/app/public/productimages/
尚不存在的目标目录(在您的情况下为 )引起的。
您可以使用一个包,例如mkdirp
在您的应用程序启动时创建目录,或者您可以在本地创建目录并创建一个空的占位符文件(.placeholder
例如,名为目录,您不能将完全空的目录添加到存储库中)。
推荐阅读
- python - 在选择排序算法的主/外循环的前三个迭代之后给出列表的状态
- javascript - Javascript:在内部导出模块内部的东西
- python-3.x - 试图弄清楚如何在 python 中将变量从一个类传递到另一个类,同时从字典中调用一个类
- puppeteer - Puppeteer 多个浏览器或页面
- python - pymc3 是否与 scikit-learn 中的 predict 方法等效?
- delay - 延迟方程的标准近似方案?
- mysql - 如何在 MySQL 中选择一些行,然后选择其他行?
- python - 是否可以在 python 中为 unittest 启用日志记录变量?
- javascript - 将 IntlProvider 与 react-testing-library 一起使用
- awk - 如何删除包含某些字符串的行之后的所有行?