Подтвердить что ты не робот

Как вы читаете файл или поток синхронно в node.js?

Пожалуйста, никаких лекций о том, как я должен делать все асинхронно. Иногда я хочу сделать что-то простое, поэтому я могу перейти к другой работе.

По какой-то причине следующий код не работает. Он соответствует коду, который я нашел в недавнем вопросе SO. Разве node что-то изменило или сломало?

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
4b9b3361

Ответ 1

Для чтения содержимого файла синхронно используйте fs.readFileSync

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

fs.createReadStream создает ReadStream.