我对NodeJs还是个新手。我试图将一个文件读入一个变量。这是我的代码。
var fs = require("fs"),
path = require("path"),
util = require("util");
var content;
console.log(content);
fs.readFile(path.join(__dirname,"helpers","test.txt"), 'utf8',function (err,data) {
if (err) {
console.log(err);
process.exit(1);
}
content = util.format(data,"test","test","test");
});
console.log(content);
但每次运行脚本时,我都会得到undefined
和undefined
我错过了什么?救命啊!
4条答案
按热度按时间qxsslcnc1#
下面的代码片段使用ReadStream。它以单独的块读取数据,如果数据文件很小,它将以单个块读取数据。但是,这是一个异步任务。因此,如果您希望对数据执行任何任务,则需要将它们包含在ReadStream部分中。
还有一种简单的方法是使用同步任务。由于这是一个同步任务,因此无需担心它的执行。与异步任务不同,程序只会在执行完当前行后移动到下一行。以下链接提供了更清晰详细的答案:
从fs.readFile获取数据
toe950272#
或者简单地如下:
nwwlzxa73#
一个非常简单的方法:
xa9qqrwz4#
正如你的问题下面的注解所述,node是异步的--这意味着当你的第二个
console.log
函数被调用时,你的函数还没有完成执行。如果在阅读文件后将log语句移动到回调中,您应该看到输出的内容:
尽管这将解决您的直接问题,但如果不了解node的异步性质,您将遇到很多问题。
This similar stackoverflow answer更详细地介绍了其他可用的替代方案。