Düğüm sunucumda pdfkit (https://github.com/devongovett/pdfkit) kullanıyorum, genellikle pdf dosyaları oluşturup bunları s3'e yüklüyorum. Sorun, pdfkit örneklerinin pdf dokümanını diske yazdığı bir node yazma akışına pipetlemesini, bu örneği takip ettiğimi ve doğru bir şekilde çalıştığını göstermekteyim, ancak gereksinimim artık pdf dokümanını kaydetmek yerine bir bellek akışına aktarmaktır. diskte (yine de s3'e yüklüyorum). Bazı düğümlü bellek akışı prosedürlerini takip ettim ama hiçbiri benimle pdf borusu ile çalışmıyor gibi görünüyor, sadece bellek akışlarına dizeler yazabiliyordum. Sorularım: pdf kit çıktılarını bir bellek akışına (veya benzer bir şeye) nasıl aktarabilirim ve sonra s3'e yüklemek için bir nesne olarak okuyunuz? peşinNode js, bir bellek akışına pipet pdfkit
var fsStream = fs.createWriteStream(outputPath + fileName);
doc.pipe(fsStream);
teşekkürler.
Bunu denedim, ancak boruları sonlandırmak ya da 'request' kullanımını sona erdirmek istemiyorum bu yüzden bu hatayı aldım: '[grunt-develop]> events.js: 141 throw er ; TLSWrap.onread de // işlenmemiş özel 'hatası' olayı ^ Hata: exports._errnoException de ECONNRESET oku (11 util.js: 856) (net.js: 544: 26) >> uygulama kodunu çıkıldı 1 ' –
Okunabilir bir akış (burada, "doc") bittiğinde, otomatik olarak yazılacağı yazılabilir akışa sona erdiğini ('upload') söyleyecektir. Yazılabilir (upload) işleminin ne zaman yapıldığını bilmek istiyorsanız, ['finish' event] 'i (https://nodejs.org/api/stream.html#stream_event_finish) dinleyin. – josh3736
Ve bu yığın izlemesi, bağlantısız olan bir şeyde 'error' olaylarını dinlemediğinizi gösterir. 'Hata' dinleyicileri ekleyin, böylece bağlantınızın kesildiğini tam olarak belirleyebilirsiniz. Eğer 'upload' talebiniz buysa, bu oldukça garip. – josh3736