【发布时间】:2018-09-08 17:23:20
【问题描述】:
我正在使用 NodeServices 在 AspNetCore 应用程序中创建 PDF。应用程序在本地机器上运行良好,但在生产环境中部署时,调用 pdf 函数时,出现以下错误:
错误:spawn D:\home\site\wwwroot\node_modules\phantomjs\lib\phantom\bin\phantomjs ENOENT 在 _errnoException (util.js:1022:11) 在 Process.ChildProcess._handle.onexit (internal/child_process.js:190:19) 在 onErrorNT (internal/child_process.js:372:16) 在 _combinedTickCallback (内部/进程/next_tick.js:138:11) 在 process._tickCallback (internal/process/next_tick.js:180:9)
Microsoft.AspNetCore.NodeServices.HostingModels.NodeInvocationException:渲染报告期间出错:spawn D:\home\site\wwwroot\node_modules\phantomjs\lib\phantom\bin\phantomjs ENOENT
错误:spawn D:\home\site\wwwroot\node_modules\phantomjs\lib\phantom\bin\phantomjs ENOENT 在 _errnoException (util.js:1022:11) 在 Process.ChildProcess._handle.onexit (internal/child_process.js:190:19) 在 onErrorNT (internal/child_process.js:372:16) 在 _combinedTickCallback (内部/进程/next_tick.js:138:11) 在 process._tickCallback (internal/process/next_tick.js:180:9)
我确认所有文件都在正确的位置。 node_modules 存在于部署中。
Azure 上的节点版本:8.9.4
生成 PDF 的代码:
module.exports = function (callback, html) {
var jsreport = require('jsreport-core')();
jsreport.init().then(function () {
return jsreport.render({
template: {
content: html,
engine: 'jsrender',
recipe: 'phantom-pdf'
}
}).then(function (resp) {
callback(/* error */ null, resp.content.toJSON().data);
}).catch(function (e) {
callback(/* error */ e, null);
});
}).catch(function (e) {
callback(/* error */ e, null);
});
};
【问题讨论】:
-
你是如何导入节点模块的?
-
我按照这里提到的确切程序进行操作:code.msdn.microsoft.com/How-to-export-HTML-to-PDF-c5afd0ce
var jsreport = require('jsreport-core')();
标签: node.js asp.net-core jsrender jsreport javascriptservices