ルールで高コストなリソースをキャッシュする
ルールには、global
オブジェクトを使用して高コストなリソースを保存することができます。global
オブジェクトは個々の実行後も存続するため、ルールが実行される度に作成するのではなく、ルールに保存されているオブジェクトを再利用できます。ただし、ルールの環境はいつでも再利用される可能性があるので、コードでは常に、global
に期待どおりの内容が含まれていることを確認する必要があります。
この例では、global
MongoDB接続を維持する方法を示しています。
//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マニュアル」を参照してください。