私のアプリは PDF ファイルを作成し、それを別のサーバーにアップロードする必要があります。アップロードは、 NPM パッケージのpost
メソッドを介して行われます。request
を渡すと、すべて正常に動作しますfs.createReadStream
。
const fs = require('fs');
const params = {file: fs.createReadStream('test.pdf')};
api.uploadFile(params);
PDFKit は読み取りストリームもインスタンス化するため、次のように投稿パラメーターに直接渡そうとしています。
const PDFDocument = require('pdfkit');
const doc = new PDFDocument();
doc.text('steam test');
doc.end();
const params = {file: doc};
api.uploadFile(params);
ただし、これによりエラーが発生します。
TypeError: パスは文字列でなければなりません。【機能】
PDFKit のソース コードを見ると (coffeescript で) 次のように表示されます。
class PDFDocument extends stream.Readable
私はストリームが初めてで、ここでの違いを理解していないことは明らかです。どちらも読み取り可能なストリームであれば、両方とも同じ方法で渡すことができるはずです。