
しかし、なぜ誰にとっても適切な方法がひとつもないのでしょうか?
SQLiteデータベースの使用例を使用して、この質問に対する答えを検討することを提案します。
Node.jsエンジン( JSDBなどとは異なります )には、SQLiteデータベースにアクセスするための組み込みツールがなく、サードパーティのモジュールに実装を提供します。 これらの中で最も人気のあるものは、有名なマッピング会社MapBoxによってサポートされているsqlite3モジュールです。 npm 統計に
彼を熱心に見ると、この人気のあるモジュールのコードは完全にjavascriptではないことが簡単にわかります。 これは、ソース(ソース) SQLiteコードをNode用のコンパイル済みアドオンとして接続することに基づいています。
この不便さに応えて、NodeでSQLiteを使用する2番目の方法が登場しました-node-sqlite-purejsモジュール。Nodeエンジンによって直接実行される純粋なjavascriptで構成される(モジュール名に反映される)ため、コードがアセンブリを必要としません。 このコードは、Alon Zakai(Emscriptenの作成者)がEmscriptenを介してSQLiteコードを渡すことで受け取った
残念ながら、Cモジュールの欠如はこのモジュールのほとんど唯一の利点です。安定性の点ではるかに良いことを期待しており、未解決の問題のリストにはデータ損失とソフトシャットダウンの不可能性が含まれます。 これはすべて、CからJavaScriptへの自動変換のプロセスで、トランザクション
最近(先週の日曜日-10月27日)、nodejs Googleグループで、NodeでSQLiteを使用する3番目の方法の出現について読むことが可能になりました。前任者の両方の主な欠点はありません。 この新しいモジュール
このモジュールは、コンパイルおよびアセンブリ用のツールを必要としないことは容易に推測できます(mapboxモジュールsqlite3が必要でした)。既製の形式でSQLite Webサイトからsqliteプログラムをダウンロードするだけで十分です。 同じ理由で、不完全な実装でも問題はありません
だからこそ、このモジュールで私は、バイホイストの多様性と共栄の原則の勝利を見て、中国の
当分の間、この3番目のモジュールを非難できるのは、 BitbucketとMercurialのソースの場所のみです(他のほとんどのNodeモジュールのようにGithubとGitではありません)。これは私にとっては珍しいことです(つまり、gibletsと機能の知識が複雑になります)モジュール、それ以上の開発を追跡することを困難にします)。 他のプログラマー(BitbucketとMercurialに精通している)は、おそらくこの欠点を重要なものとは思わないでしょう(しかし、ソースを見ると、おそらく私がまだ知らない他の欠点を見つけるでしょう)。 このモジュールのソースコードはまだ読んでいないので、ここで私の話は終わりです。