How to read the content of files synchronously in Node.js?

后端 未结 3 1412
一整个雨季
一整个雨季 2020-12-16 10:24

This is what I have:

#! /usr/bin/env node

var fs = require(\'fs\'),
    files = fs.readdirSync(__dirname + \'/files/\'),

files.forEach(function(file) {
  f         


        
相关标签:
3条回答
  • Have you seen readFileSync? I think that could be your new friend.

    0 讨论(0)
  • 2020-12-16 11:06

    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);
    })
    
    0 讨论(0)
  • 2020-12-16 11:06

    That's because you read the file asynchronously. Try:

    #! /usr/bin/env node
    
    var fs = require('fs'),
        files = fs.readdirSync(__dirname + '/files/'),
    
    files.forEach(function(file) {
      var data = fs.readFileSync(__dirname + '/files/' + file, 'utf8');
      console.log(data);
    });
    

    NodeJS Documentation for 'fs.readFileSync()'

    0 讨论(0)
提交回复
热议问题