我对NodeJ很陌生。而且我正在尝试将文件读入变量。这是我的代码。
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
undefined
我想念什么?请帮助!
正如您在问题下的注释中所述,节点是异步的-意味着当您console.log调用第二个函数时,您的函数尚未完成执行。
console.log
如果在读取文件后将日志语句移动到回调中,则应该看到输出的内容:
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); });
即使这将解决您眼前的问题,但如果不了解节点的异步特性,您将遇到很多问题。