ルールで高コストなリソースをキャッシュする

ルールには、globalオブジェクトを使用して高コストなリソースを保存することができます。globalオブジェクトは個々の実行後も存続するため、ルールが実行される度に作成するのではなく、ルールに保存されているオブジェクトを再利用できます。ただし、ルールの環境はいつでも再利用される可能性があるので、コードでは常に、globalに期待どおりの内容が含まれていることを確認する必要があります

この例では、globalMongoDB接続を維持する方法を示しています。

//If the db object is there, use it.
if (global.db){
  return query(global.db, callback);
}

//If not, get the db (mongodb in this case)
mongo('mongodb://user:pass@mymongoserver.com/my-db',  function (db){
  global.db = db;
  return query(db, callback);
});

//Do the actual work
function query(db, cb){
  // Do something with db
  ...
  return cb(null, user, context);
}

Was this helpful?

/

MongoDBの使用に関する詳細は、「MongoDBマニュアル」を参照してください。