How to read the content of files synchronously in Node.js?
You need to use readFileSync
, your method is still reading the files asynchronously, which can result in printing the contents out of order depending on when the callback happens for each read.
var fs = require('fs'), files = fs.readdirSync(__dirname + '/files/');files.forEach(function(file) { var contents = fs.readFileSync(__dirname + '/files/' + file, 'utf8'); console.log(contents);})
That's because you read the file asynchronously. Try:
#! /usr/bin/env nodevar fs = require('fs'), files = fs.readdirSync(__dirname + '/files/'),files.forEach(function(file) { var data = fs.readFileSync(__dirname + '/files/' + file, 'utf8'); console.log(data);});