我正在寻找一种超级简单的方法来在 Node.js 下以持久的方式存储一个 JSON 数组。它不需要任何特殊功能。我只想在其中放置一个JSON对象,并能够在下次服务器重启时读取它。
(像 MongoDB 和 CouchDB 这样的解决方案对于此目的而言似乎都有点过分。)
答案 0 :(得分:70)
为什么不写入文件?
// 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");
答案 1 :(得分:7)
尝试NeDB:https://github.com/louischatriot/nedb
" Node.js的嵌入式持久数据库,用Javascript编写,没有依赖性(当然除了npm模块)。您可以将其视为Node.js项目的SQLite,它可以与简单的require语句一起使用。 API是MongoDB的子集。您可以将其用作持久性或仅在内存中的数据存储区。"
答案 2 :(得分:5)
我找到了一个名为json-fs-store的库,用于将JavaScript对象序列化为文件中的JSON,并在以后检索它。
通过store.load
方法检索文件时(目前未在文档中描述),使用JSON.parse
进行解析,这比在另一个中执行require
更好回答:
答案 3 :(得分:3)
答案 4 :(得分:2)
您可以将JSON数据保存在一个简单的文本文件中,并在服务器重启时读取它。
const data = require("yourarrayfile.json");
然后像往常一样使用它。
答案 5 :(得分:2)
如果您需要简单的数据存储,没有外部过程,非常高且稳定的性能,则可能需要 Rocket-store
使用非常简单;包括该模块,您就可以立即开始插入记录。
它有三种主要方法:放入,获取和删除(以及一些特殊的方法和选项设置)
示例:
// collection/table = "cars", key = "Mercedes"
result = await rs.post("cars", "Mercedes", {owner: "Lisa Simpson", reg: "N3RD"});
// Get all records from "cars" collection
result = await rs.get("cars","*");
// Delete records in collection "cars" where keys match "*cede*"
result = await rs.delete("cars","*cede*");
Rocket-store 依靠底层文件系统的现金来优化速度并可以处理数百万条记录。
在插入时,它很容易比关系数据库快100倍。通常为每秒70.000次插入。 (PC)
您将获得简单的序列,自动递增和其他一些次要的便利,但有关这些。没有什么花哨。
每当我需要一个简单的存储解决方案时,我都非常喜欢它,但是作为作者,我也非常有偏见;)
答案 6 :(得分:0)
虽然LokiJS和NeDB都有更多用户,但我只是遇到了TaffyDB。虽然我自己没有尝试过,但我认为我应该在这里添加它以保证完整性。
答案 7 :(得分:0)
尝试LowDB
Lowdb是一个由Lodash支持的小型本地JSON数据库(支持Node,Electron和浏览器)。如果您了解Lodash,那么您已经知道如何使用Lowdb。
答案 8 :(得分:0)
建议节点的 fs 系统的用户我必须同意。如果 mongoDB 等已经过大了,其他人都在建议对我来说似乎整体上的东西。简单的语言环境存储或节点的 fs 库。
我记得当我开始我的 Web 开发之旅时,我对通过 mongoDB 之类的东西学习持久数据存储技术还不够了解。但是 node 的 fs 库对我的一些早期应用程序起到了作用。即使重新启动本地服务器,所有数据都保持不变