NodeJ中未处理的“错误”事件

时间:2018-07-02 06:21:26

标签: node.js npm wkhtmltopdf fs

我在NodeJs中工作,当尝试在'fs'npm软件包的帮助下以.pdf格式写入文件时,出现了一些错误,甚至没有生成pdf。我需要帮助才能跳出这个问题,问题是

    events.js:167
      throw er; // Unhandled 'error' event
      ^

Error: write EPIPE
    at WriteWrap.afterWrite [as oncomplete] (net.js:833:14)
Emitted 'error' event at:
    at onwriteError (_stream_writable.js:431:12)
    at onwrite (_stream_writable.js:456:5)
    at _destroy (internal/streams/destroy.js:40:7)
    at Socket._destroy (net.js:603:3)
    at Socket.destroy (internal/streams/destroy.js:32:8)
    at WriteWrap.afterWrite [as oncomplete] (net.js:835:10)

有关此错误的代码:

let doc = await wkhtmltopdf(options, xxxx);
let file = await doc.stdout.pipe(fs.createWriteStream(`${__dirname}/${id}_init.pdf`));

感谢您的期待!! 我尝试重新安装fs软件包,更改了端口,但没有任何改善 我认为问题也可能是wkhtmltopdf软件包的bcz(我使用的是Mac)

1 个答案:

答案 0 :(得分:0)

我建议您进行以下更改,这对我来说非常好:

// Set url and options to whatever you wish
let doc = wkhtmltopdf(url, options);
let file = doc.pipe(fs.createWriteStream(`${__dirname}/${id}_init.pdf`));

由于wkhtmltopdf和doc.pipe都不返回诺言,因此我们无法在两个调用中使用await。

您也可以尝试直接写入文件,跳过流,例如

wkhtmltopdf('http://google.com/', { output: 'out.pdf' });