在 Heroku Node.js 应用上上传图片时出错
Error while uploading image on Heroku Node.js app
路线-
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 服务器时出现问题,在本地主机上一切正常。但是在 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
)您提交到您的 Git 存储库(因为 Git 只处理文件,而不是目录,您不能将一个完全空的目录添加到存储库)。
路线-
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 服务器时出现问题,在本地主机上一切正常。但是在 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
)您提交到您的 Git 存储库(因为 Git 只处理文件,而不是目录,您不能将一个完全空的目录添加到存储库)。