无法使用fs读取.txt的内容

时间:2019-12-13 14:51:55

标签: node.js fs

我正在使用fs mudule读取.txt文件内容,但结果始终为空。我的.txt文件确实包含内容,有人可以帮我吗?这是我的测试代码:

var fs = require("fs");

var content = "";
fs.readFile("2.txt", "utf8", function(err, data){
  if(err) {
    return console.log("fail", err);
  }
  content = data;
});

console.log(content);

content在控制台中为空。

1 个答案:

答案 0 :(得分:1)

您将结果写得太早了。您应该将结果记录在readFile回调中。

var fs = require("fs");

var content = "";
fs.readFile("2.txt", "utf8", function(err, data){
  if(err) {
    return console.log("fail", err);
  }
  content = data;
  console.log(content);
});
// The console log below will be executed right after the readFile call. 
// It won't wait the file to be actually read.
// console.log(content);

或者您可以像这样编写相同的逻辑:

const fs = require('fs');

async function main() {
  try {
    const content = await fs.promises.readFile('2.txt', 'utf8');
    console.log(content);
  } catch (ex) {
    console.trace(ex);
  }
}

main();