私のノードサーバーでpdfkit(https://github.com/devongovett/pdfkit)を使用しています。通常はpdfファイルを作成し、s3にアップロードします。 問題は、pdfkitの例がpdf docをノード書き込みストリームにパイプすることです。このストリームはファイルをディスクに書き込みます。例を辿って正しく動作しましたが、私の要件は今はpdf docを保存するのではなくメモリストリームにパイプすることですそれはディスク上にあります(私はとにかくs3にアップロードしています)。 私はいくつかのノードメモリストリームの手順に従ってきましたが、それらのどれも私と一緒にpdfパイプでは動作しないようです。文字列をメモリストリームに書き込むだけでした。 私の質問は:どのようにpdfのキットの出力をメモリストリーム(または同様のもの)にパイプしてから、それをs3にアップロードするオブジェクトとして読み込むのですか?事前にノードjs、pdfkitをメモリストリームに接続
var fsStream = fs.createWriteStream(outputPath + fileName);
doc.pipe(fsStream);
感謝。
私はこれを試しましたが、パイプの終了や "要求"の使用を終了した経験がないので、このエラーが発生しました: '[grunt-develop]> events.js:141 thrower ; //未処理の 'エラー' イベント ^ エラー:読み取りexports._errnoExceptionでECONNRESET (util.js:856:11) TLSWrap.onreadで(net.js:544:26) >>アプリケーションコードで終了しました1 ' –
読み込み可能なストリーム(ここでは' doc')が終了すると、自動的に書き込み可能なストリームにパイプされて終了した( 'upload')ことを伝えます。書き込み可能(アップロード)が完了したときを知りたい場合は、['finish'イベント](https://nodejs.org/api/stream.html#stream_event_finish)を待ち受けます。 – josh3736
スタックトレースは、切断されているものの 'error'イベントをリッスンしていないことを示します。 'error'リスナーを追加して、何が切断されているのかを正確に判断することができます。それがあなたの 'アップロード'要求の場合、それはかなり奇妙です。 – josh3736