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)
}