【问题标题】:Unable to save image to the static folder - Heroku / NodeJS无法将图像保存到静态文件夹 - Heroku / NodeJS
【发布时间】:2020-06-25 23:24:23
【问题描述】:

我有一个node.js 应用程序运行express 并使用puppeteer 模块。该应用程序在本地以总效率运行,但是当我将其上传到heroku 时,我无法将图像保存到static 目录。

我用来保存文件的那一行:

async doSomething()=> {
    ....
    await page.screenshot({ path: "public/images/insta.png" })
    ....
}

Heroku 中执行此行会导致此错误:

2020-06-25T21:31:02.713334+00:00 app[web.1]: Error: ENOENT: no such file or directory, open 'public/images/insta.png'
2020-06-25T21:31:02.713350+00:00 app[web.1]: -- ASYNC --
2020-06-25T21:31:02.713350+00:00 app[web.1]: at Page.<anonymous> (/app/node_modules/puppeteer/lib/helper.js:116:19)
2020-06-25T21:31:02.713351+00:00 app[web.1]: at Object.scrapeProduct (/app/scrapper.js:9:20)
2020-06-25T21:31:02.713351+00:00 app[web.1]: at processTicksAndRejections (internal/process/task_queues.js:97:5) {
2020-06-25T21:31:02.713352+00:00 app[web.1]: errno: -2,
2020-06-25T21:31:02.713352+00:00 app[web.1]: code: 'ENOENT',
2020-06-25T21:31:02.713353+00:00 app[web.1]: syscall: 'open',
2020-06-25T21:31:02.713353+00:00 app[web.1]: path: 'public/images/insta.png'
2020-06-25T21:31:02.713353+00:00 app[web.1]: }

我尝试将路径更改为"/images/insta.png"__dirname + "/public/images/insta.png" 和其他解决方法,但这些都不起作用。仍然出现同样的错误。

我的目录有截图:

注意: 在 localhost & 上运行时不会出现此错误 我的heroku slug 上安装了puppeteer buildpack。

【问题讨论】:

    标签: node.js express debugging heroku puppeteer


    【解决方案1】:

    你应该这样做:

    var path = require("path");
    var imagePath = path.join(process.cwd(), 'public/images/insta.png');
    
    async doSomething()=> {
        ....
        await page.screenshot({ path: imagePath })
        ....
    }
    

    它应该这样工作。

    【讨论】:

    • 同样的错误信息仍然存在:log Error: ENOENT: no such file or directory, open '/app/public/images/insta.png' -- ASYNC -- at Page.&lt;anonymous&gt; (/app/node_modules/puppeteer/lib/helper.js:116:19) at Object.scrapeProduct (/app/scrapper.js:13:20) at processTicksAndRejections (internal/process/task_queues.js:97:5) { errno: -2, code: 'ENOENT', syscall: 'open', path: '/app/public/images/insta.png' }
    猜你喜欢
    • 1970-01-01
    • 2021-04-05
    • 2021-10-17
    • 1970-01-01
    • 2018-09-01
    • 2015-02-09
    • 1970-01-01
    • 2021-11-17
    • 1970-01-01
    相关资源
    最近更新 更多