我正在构建的应用程序依赖于多个.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()
函数并随后使用缓存的结果?
答案 0 :(得分:4)
Node会在第一次加载时缓存模块,因此代码只会运行一次。
http://nodejs.org/api/modules.html#modules_caching
还有一些其他有趣的信息,例如为了配置的目的,你可以require()
JSON文件。它比使用fs
容易一些。