一尘不染

如何在NodeJs中读取文件到变量?

node.js

我对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);

但每次我运行该脚本,我得到 undefinedundefined

我想念什么?请帮助!


阅读 744

收藏
2020-07-07

共1个答案

一尘不染

正如您在问题下的注释中所述,节点是异步的-意味着当您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);
});

即使这将解决您眼前的问题,但如果不了解节点的异步特性,您将遇到很多问题。

2020-07-07