Для работы с файлами node.js имеет встроенный модуль fs.
Чтение файла:
var fs = require(‘fs’); fs.readFile(__filename, function(err, data){ if(err){ console.log(err); } else { console.log(data); } });
Где __filename – это имя текущего файла. При запуске получим не содержимое файла, а специальный объект буфер.
Чтобы преобразовать буфер в строку, можно воспользоваться методом toString():
var fs = require(‘fs’); fs.readFile(__filename, function(err, data){ if(err){ console.log(err); } else { console.log(data.toString(‘utf-8’)); } });
Кодировку utf-8 можно не указывать, т.к. она используется как кодировка по умолчанию.
Рассмотрим еще один вариант преобразования в строку: использование кодировки при открытии потока.
var fs = require(‘fs’); fs.readFile(__filename,{encoding: ‘utf-8’},function(err, data){ if(err){ console.log(err); } else { console.log(data); } });
В этом случае преобразование в строку происходит внутри функции.
Чтение файла построчно:
var fs = require(‘fs’); var stream = new fs.ReadStream(__filename, {encoding: ‘utf-8’}); stream.on(‘readable’, function(){ console.log(data); }); stream.on(‘end’, function(){ console.log(‘Конец файла’); });
Событие readable срабатывает при каждом проходе по строке файла. Событие end – при успешном завершении чтения.