在Node.js中,如果多次请求,是否需要多次加载所需的模块?

时间:2014-03-05 08:26:43

标签: javascript json node.js

我正在构建的应用程序依赖于多个.json配置文件。因为我需要在应用程序的模块中保持相同的配置数据,所以我创建了一个单独的config.js模块,我在其中解析.json个文件并导出一个单个对象:

var fs = require("fs");
module.exports = {
    a: JSON.parse(fs.readFileSync("./config/a.json")),
    b: JSON.parse(fs.readFileSync("./config/b.json")),
    c: JSON.parse(fs.readFileSync("./config/c.json"))
};

考虑到require多个其他模块中的config.js模块,每次需要配置模块时都会运行json文件的解析吗?或者Node是否足够聪明,只能在第一次运行JSON.parse()函数并随后使用缓存的结果?

1 个答案:

答案 0 :(得分:4)

Node会在第一次加载时缓存模块,因此代码只会运行一次。

http://nodejs.org/api/modules.html#modules_caching

还有一些其他有趣的信息,例如为了配置的目的,你可以require() JSON文件。它比使用fs容易一些。