繁体   English   中英

在 heroku 上运行的 nodejs 应用程序出错。 (html-pdf)

[英]Error on nodejs app running on heroku. (html-pdf)

我正在使用库html-pdf来渲染 pdf,然后使用 email 发送文件。 它在本地主机上就像一个魅力

pdf.create(html, {format: 'A4'}).toFile(`./public/invoices/${order.id}.pdf`, (err, res) => {
            if (err) return console.log(err);
        });

目前我在 Heroku 上托管 nodejs。 在 pdf.create() 执行之前,它工作正常。 收到此错误:

2022-08-25T21:32:13.925568+00:00 app[web.1]: Auto configuration failed
2022-08-25T21:32:13.925570+00:00 app[web.1]: 139861897091008:error:25066067:DSO support routines:DLFCN_LOAD:could not load the shared library:dso_dlfcn.c:185:filename(libproviders.so): libproviders.so: cannot open shared object file: No such file or directory
2022-08-25T21:32:13.925571+00:00 app[web.1]: 139861897091008:error:25070067:DSO support routines:DSO_load:could not load the shared library:dso_lib.c:244:
2022-08-25T21:32:13.925572+00:00 app[web.1]: 139861897091008:error:0E07506E:configuration file routines:MODULE_LOAD_DSO:error loading dso:conf_mod.c:285:module=providers, path=providers
2022-08-25T21:32:13.925573+00:00 app[web.1]: 139861897091008:error:0E076071:configuration file routines:MODULE_RUN:unknown module name:conf_mod.c:222:module=providers
2022-08-25T21:32:13.925574+00:00 app[web.1]: 
2022-08-25T21:32:13.925575+00:00 app[web.1]:     at ChildProcess.respond (/app/node_modules/html-pdf/lib/pdf.js:134:17)
2022-08-25T21:32:13.925576+00:00 app[web.1]:     at ChildProcess.emit (node:events:513:28)
2022-08-25T21:32:13.925576+00:00 app[web.1]:     at ChildProcess.emit (node:domain:489:12)
2022-08-25T21:32:13.925577+00:00 app[web.1]:     at Process.ChildProcess._handle.onexit (node:internal/child_process:291:12)

我认为问题出在某些 html-pdf 依赖项中,例如 phantomjs。 如果有人可以帮助我,或者如果有人知道更好的 html-pdf 解决方案,我会很高兴。

我实际上找到了解决方案。

如果还有人想知道,只需添加

childProcessOptions: { env: { OPENSSL_CONF: '/dev/null' }

到选项。

所以它看起来像这样

pdf.create(html, {/* ... */ childProcessOptions: { env: { OPENSSL_CONF: '/dev/null' }}).toFile(`./public/invoices/${order.id}.pdf`, (err, res) => {
            if (err) return console.log(err);
        });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM