sql >> データベース >  >> NoSQL >> MongoDB

マングースのアプリ全体でデータベース接続を共有する

    オプション1:共有オブジェクトを使用する

    私のモデルコードは似ていますが、モジュールを繰り返し必要とするのではなく、アプリケーションの起動時に一度だけ必要とし、結果を共有オブジェクトに割り当てます。たとえば、エクスプレスアプリを使用している場合は、app.locals.models.User = require('./models/user');のようになります。 。次に、appにアクセスできるものなら何でも 必要なしにモデルを見ることができます。

    オプション2:エクスポートされた関数に単一の変更を加える

    ユーザーモジュールは次のように定義できます:

    var mongoose = require('mongoose');
    
    var userSchema = new mongoose.Schema({name: String});
    
    var User = null;
    
    module.exports = function(db) {
      if (db && User === null) {
        User = db.model('User', userSchema);
      }
      return User;
    };
    

    アプリケーションを起動するときは、次のことを行うだけです。require('./models/user')(db) 。アプリケーション内の他のモジュールによる後続の要求により、dbが削除される可能性があります パラメータ、User 一度だけ設定されます。




    1. MongoCommandException:コマンドがエラー8000で失敗しました(AtlasError):'SNI名が送信されていません。必ず、MongoDB3.4以降のドライバー/シェルを使用してください。'

    2. MongoEngine:動的ドキュメントへのフィールドの追加

    3. mongodb会話システム

    4. Google Cloud Functionsは、HTTPリクエストごとにMongoDBクライアントに再接続しますか?