Używam pdfkit (https://github.com/devongovett/pdfkit) na moim serwerze węzła, zwykle tworząc pliki pdf, a następnie przesyłając je do s3. Problem polega na tym, że przykłady PDFkit doprowadzają plik PDF do strumienia zapisu węzła, który zapisuje plik na dysk, podążyłem za przykładem i działałem poprawnie, jednak moim wymaganiem jest teraz poprowadzenie dokumentu PDF do strumienia pamięci zamiast zapisywania to na dysku (mimo to ładuję do s3). Podążyłem za procedurami strumieni pamięci węzłów, ale żaden z nich nie wydaje się pracować ze mną z rurą pdf, mógłbym tylko napisać ciągi do strumieni pamięci. Moje pytanie brzmi: jak wypakować wyjście zestawu pdf do strumienia pamięci (lub czegoś podobnego), a następnie odczytać go jako obiekt do przesłania do s3?Węzeł js, piping pdfkit do strumienia pamięci
var fsStream = fs.createWriteStream(outputPath + fileName);
doc.pipe(fsStream);
góry dzięki.
Próbowałem tego, ale wydaje mi się, że nie mam doświadczenia z zakończeniem rur lub zakończeniem użycia 'request' , więc skończyłem na tym, że miałem ten błąd: ' [grunt-develop]> events.js: 141 throw er ; // nieobsługiwany 'błąd' wydarzenie ^ Błąd: czytaj ECONNRESET na exports._errnoException (util.js: 856: 11) na TLSWrap.onread (net.js: 544: 26) >> aplikacja wyszła z kodem 1' –
Gdy skończy się czytelny strumień (tutaj, 'doc'), automatycznie poinformuje on zapisywalny strumień, do którego jest podłączony (" upload "), że został zakończony. Jeśli chcesz się dowiedzieć, kiedy zapisywalny (upload) jest zrobiony, posłuchaj zdarzenia "' finish' "(https://nodejs.org/api/stream.html#stream_event_finish). – josh3736
A ten ślad stosu wskazuje, że nie słuchasz zdarzeń "error" na czymś, co się rozłącza. Dodaj detektory "błędów", aby dokładnie określić, co się rozłącza. Jeśli jest to twoja prośba o przesłanie, to jest dość dziwne. – josh3736