javascript - 在 Node.js 下存储 JSON 的简单方法

标签 javascript json node.js database

我正在寻找一种 super 简单的方法来在 Node.js 下以持久方式存储一个 JSON 数组。它不需要有任何特殊功能。我只想在其中放一个 JSON 对象,以便在下次服务器重启时读取它。

(像 MongoDBCouchDB 这样的解决方案对于这个目的来说似乎都过大了。)

最佳答案

为什么不写入文件?

// 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/

相关文章:

JavaScript/JQuery 双执行

javascript - 更新键和值 - json 对象

php - Symfony2 : Echoing JSON From a Controller for Use in an ExtJS 4 Grid

javascript - 使用 "start function"和 "parameters"调用 javascript 文件

查询特定记录时的 SQL Server 问题

php - 将我的 Google Chart(表格)数据导出到 excel 或 csv

javascript - JS Array.every 在比较字符串时总是返回 false

php - jquery 获取数组详细信息

javascript - 如何在 selenium webdriver 中获取文本框的值,Js

javascript - jQuery 方法与 jQuery 选择器