【问题标题】:Error while uploading image on Heroku Node.js app在 Heroku Node.js 应用上上传图片时出错
【发布时间】:2019-04-20 06:42:33
【问题描述】:

路线-

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'

【问题讨论】:

  • 您是否运行了 heroku logs --tail 以查看日志内容?
  • 00:00 app[web.1]: /app/controllers/user.js:247 00:00 app[web.1]: if (err) throw err; 00:00 app[web.1]: ^ 00:00 app[web.1]: 00:00 app[web.1]: Error: ENOENT: no such file or directory, open '/app//public/productimages /F8MboSYV62SZ.jpg' 00:00 app[web.1]: npm 错误!代码 ELIFECYCLE 00:00 应用程序 [web.1]:npm 错误!错误号 1 00:00 应用程序 [web.1]:npm 错误! maalikk@1.0.0 开始:node index.js 00:00 app[web.1]:npm 错误!退出状态 1 00:00 app[web.1]: npm ERR!
  • 请附上日志截图。
  • @RohanDhar 请检查我已附上日志截图

标签: node.js heroku formidable


【解决方案1】:

这些错误通常是由尚不存在的目标目录(在您的情况下为 /app/public/productimages/)引起的。

您可以使用 mkdirp 之类的包在应用启动时创建目录,或者您可以在本地创建目录并创建一个空的占位符文件(例如名为 .placeholder),然后将其提交到 Git 存储库(因为 Git 只处理文件,而不处理目录,所以你不能将一个完全空的目录添加到存储库中)。

【讨论】:

    猜你喜欢
    • 2014-08-19
    • 1970-01-01
    • 1970-01-01
    • 2013-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-14
    相关资源
    最近更新 更多