[〜#〜] json [〜#〜]配列をNode.jsの下に永続的な方法で格納するための非常に簡単な方法を探しています。特別な機能は必要ありません。そこに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");
NeDBを試してください: https://github.com/louischatriot/nedb
「Javascriptで記述された、依存関係のないNode.jsの組み込み永続データベース(もちろんnpmモジュールを除く)。Node.jsプロジェクトのSQLiteと考えることができ、単純なrequireステートメントで使用できます。API MongoDBのサブセットです。これを永続的またはメモリ内のみのデータストアとして使用できます。」
JavaScriptオブジェクトをファイル内のJSONにシリアル化し、後で取得するために json-fs-store という名前のライブラリを見つけました。
store.load
メソッド(現時点ではドキュメントに記載されていません)を介してファイルを取得する場合、それはJSON.parse
で解析されます。これは、他の回答のようにrequire
外部プロセスがなく、非常に高い安定したパフォーマンスを備えたシンプルなデータストレージが必要な場合は、Rocket-store
使い方はとても簡単です。モジュールを含めると、すぐにレコードの挿入を開始できます。
3つの主要なメソッドがあります:put、get、およびdelete(およびいくつかの特別な方法とオプションの設定)
例:
// 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)
単純なシーケンス、自動インクリメント、その他の小さな便利さが得られますが、それについてはそうです。派手なものは何もありません。
シンプルなストレージソリューションが必要なときはいつでも気に入っていますが、著者としても非常に偏見があります;)
JSONデータを単純なテキストファイルに保存し、サーバーの再起動時に読み取ることができます。
const data = require("yourarrayfile.json");
その後、通常どおりに使用します。
LokiJSとNeDBの両方がより多くのユーザーを抱えているように見えますが、私は TaffyDB に出会いました。自分で試したことはありませんが、完全を期すためにここに追加する必要があると考えました。