実現したいこと
質問
Node.js 20.7.0でクライアントから送られたデータをサーバ側でファイルに書き込むシステムを作ろうとしています。
クライアントからはデータがStreamで送られてくるので、サーバ側でのファイルのオープンはfs.createWriteStreamを使おうとしています。
ところが、実際にコードを動かしても、サイズが0バイトのファイルが作成されはするものの、そのファイルに書き込むことができません。外部のプログラムを使うNodeのモジュールを呼び出してそのWriteStreamを引数に与えて出力しようとするとエラーになります。
調べてみると、fd (file descriptor)がnullとなっています。
手元だけではなく、RunKitでも、
JavaScript
1const fs = require('fs');2const file = fs.createWriteStream('./temp');3console.log(file);
を実行してみると、結果は
WriteStream {fd: null, path: "./temp", flags: "w", mode: 438, start: undefined, pos: undefined, bytesWritten: 0, …}
となり、fdはnullになります。
これは正しい動作なのだろうと思いますが、ファイルに書き込めるようにするために、私は何を見落としていると考えられるでしょうか。
よろしくお願いします。

0 コメント