Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何在readfile函数内部设置变量值,并在节点js外部使用它?_Node.js - Fatal编程技术网

Node.js 如何在readfile函数内部设置变量值,并在节点js外部使用它?

Node.js 如何在readfile函数内部设置变量值,并在节点js外部使用它?,node.js,Node.js,我试图将文件内容读取为字符串,并希望将变量值设置为它。但在本例中,当我尝试访问file\u数据变量时,如果在函数外部使用,则会给出一个空值。但是在fs.readFile函数中,它工作正常 var fs = require('fs'); let file_data = ''; fs.readFile('text_file.txt', 'utf8', function(err, data) { if (err) throw err; console.log(data); //th

我试图将文件内容读取为字符串,并希望将变量值设置为它。但在本例中,当我尝试访问
file\u数据
变量时,如果在函数外部使用,则会给出一个空值。但是在
fs.readFile
函数中,它工作正常

var fs = require('fs');

let file_data = '';

fs.readFile('text_file.txt', 'utf8', function(err, data) {
    if (err) throw err;
    console.log(data); //this works fine here
    file_data = data; //setting it here so that I can use it afterwards
});

//the following line gives blank output
console.log(file_data );

我在这方面有点生疏,所以请指出在使用类似函数之前是否需要先阅读一些内容。

fs.readFile()是一个异步函数,所以

//the following line gives blank output
console.log(file_data );
在fs.readFile()响应之前处理,因此您可以:

fs.readFile('text_file.txt', 'utf8', function(err, data) {
    if (err) throw err;
    console.log(data); //this works fine here
    file_data = data; //setting it here so that I can use it afterwards

    // CONSOLE LOG HERE!! AND IT WORKS
    console.log(file_data );

});
或者,您可以使用同步版本fs.readFileSync()


非常感谢您的回答。我认为它的同步版本非常适合我的特殊情况。谢谢。
try {
  const data = fs.readFileSync('text_file.txt', 'utf8')
  console.log(data)
} catch (err) {
  console.error(err)
}