我正在寻找一种 super 简单的方法来在 Node.js 下以持久方式存储一个 JSON 数组。它不需要有任何特殊功能。我只想在其中放一个 JSON 对象,以便在下次服务器重启时读取它。
(像 MongoDB 和 CouchDB 这样的解决方案对于这个目的来说似乎都过大了。)
最佳答案
为什么不写入文件?
// Writing...
var fs = require("fs");
var myJson = {
key: "myvalue"
};
fs.writeFile( "filename.json", JSON.stringify( myJson ), "utf8", yourCallback );
// And then, to read it...
myJson = require("./filename.json");
请记住,如果您需要反复读写,则必须为您反复读取的每个文件清除 Node 的缓存,否则 Node 将不会重新加载您的文件,而是产生它在第一个 require
调用。幸运的是,清除特定需求的缓存非常容易:
delete require.cache[require.resolve('./filename.json')]
还要注意,如果(从 Node 12 开始)您使用的是 ES 模块而不是 CommonJS,则 import
语句没有相应的缓存失效。相反,请使用 dynamic import() ,然后由于导入来自 URL,因此您可以将查询字符串作为缓存清除的一种形式添加为导入字符串的一部分。
或者,要避免任何内置缓存,请使用 fs.readFile()
/fs.readFileSync()
而不是 require(使用 fs/promises
而不是 fs
如果您正在编写基于 Promise 的代码,无论是显式地还是使用 async/await 隐式地编写)
关于javascript - 在 Node.js 下存储 JSON 的简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14939289/