36

すべてを非同期に行う方法についての講義はやめてください。他の仕事に移れるように、簡単で明白な方法で物事を行いたい場合もあります。

何らかの理由で、次のコードが機能しません。最近の SO questionで見つけたコードと一致します。ノードが変更されたか、何かが壊れましたか?

var fs = require('fs');
var rs = fs.createReadStream('myfilename');  // for example
                                             // but I might also want to read from
                                             // stdio, an HTTP request, etc...
var buffer = rs.read();     // simple for SCCCE example, normally you'd repeat in a loop...
console.log(buffer.toString());

読み取り後、バッファは null です。

デバッガーで rs を見るとわかります

events  
   has end and open functions, nothing else
_readableState
  buffer = Array[0]
  emittedReadable = false
  flowing = false   <<< this appears to be correct
  lots of other false/nulls/undefined
fd = null   <<< suspicious???
readable = true
  lots of other false/nulls/undefined
4

1 に答える 1

10

ファイルの内容を同期的に読み取るには、fs.readFileSyncを使用します。

var fs = require('fs');
var content = fs.readFileSync('myfilename');
console.log(content);

fs.createReadStreamはReadStreamを作成します。

于 2013-11-12T00:05:28.660 に答える