Необработанное событие «ошибка» в NodeJs - PullRequest
0 голосов
/ 02 июля 2018

Я работаю в NodeJs и при попытке записать файл в формате .pdf с помощью пакета 'fs' npm у меня возникла ошибка, и даже 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, изменив порты, но без улучшения Я думаю, что проблема может быть в bcz пакета wkhtmltopdf (я использую Mac)

1 Ответ

0 голосов
/ 02 июля 2018

Я предлагаю вам внести следующие изменения, это очень хорошо работает для меня:

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

Мы не можем использовать await ни для одного вызова, поскольку ни wkhtmltopdf, ни doc.pipe не обещают возврата.

Вы также можете попробовать записать напрямую в файл, пропустив поток, например,

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