あなたはアプリケーションの唯一のバックエンドとしてArangoDB Foxxを使うことができますが、これを行う際にはFoxx(Node.jsのような汎用JS環境と比較して)の制限を守ることが重要です。
暗号化があります。 ArangoDBはいくつかの暗号化(例えば、パスワードのHMAC署名とPBKDF2鍵の導出など)をサポートしていますが、Node.jsのように網羅的ではありません。また、計算コストの高い暗号化を使用すると、データベースのパフォーマンスに影響を与えます(Node.js Foxxとは厳密に同期しているため、すべての操作はブロックされているとみなされるため)。
ArangoDBはロールベースの認証をサポートしていませんが、データベースを残す必要はありませんが、Node.jsに実装するのと同じように、ArangoDBでFoxxを使用して実装するのは完全に合理的です)。
セッションの場合は、セッション文書(セッションバックエンドとしてArangoDBを使用)を使用するか、署名付きトークンを使用してサービスをステートレスに保つことができます(FoxxはJWTサポートを提供していますボックス)。
複雑で保存されたクエリと入力検証(実際にはhapi用に作成されたjoiスキーマライブラリを使用しています)は実際にはFoxxの主な使用例の一部です。
Foxxにはキューイングタスク用の独自のメカニズムが付属しています。これらのタスクは、先にスケジュールすることも、定期的に繰り返すこともできます。ただし、必要に応じて、外部ジョブまたはメッセージキューが適しています。良いことは、組み込みのジョブキューをすぐに開始でき、開発中に必要が生じた場合でも専用のソリューションに移行できることです。
ミドルウェアとNPMパッケージの場合:FoxxはNode.jsコードと完全に互換性がありません。できるだけ多くの互換コードを提供してコアモジュールを互換性を維持しようとしていますが、ArangoDBでは非同期操作を実行するのにNode.jsが一般的に使用されています。
暗号化、ファイルまたはネットワークのI/Oを使用せず、非同期API(setTimeout、約束など)を使用しないNode.jsモジュールをお持ちの場合、Foxxと互換性があります。 lodashのような多くのユーティリティライブラリは問題なく動作します。モジュールが動作しないことが分かっても、mocha(Foxxに統合)やGraphQL(NPMのgraphql-syncパッケージ経由)で行ったように、アダプタを作成することは可能かもしれません。
私の経験では、FoxxサービスをNode.jsの薄い層の上に置くのは良いアプローチです(例えばFoxx APIにほとんどプロキシする簡単なアプリケーション)、そして/またはあなたのバックエンドの一部を委譲するスタンドアロンのNode.jsマイクロサービス(例えば、電子メールやLDAPのような非HTTPサービスとの統合)は、HTTP経由でFoxxに統合することができます。
もう1つ:既存のExpressミドルウェアの多くは、ノード固有の依存関係と非同期ロジックのためFoxxと互換性がない可能性が高いですが、ArangoDB 3は、機能的に明示的なミドルウェアを使用して、互換性のあるAPI。
私の答えが分かりましたので、この質問を閉じるために受け入れられたと思いますか?それとも、それが受け入れられるために私の答えで私が言いたいことが他にもありますか? –