我要去位回答你的問題位。
現在,我的測試應用程序,到數據庫的連接是主節點文件
這是好的,雖然你可能希望把它放在一個單獨的文件中更容易重用。 NodeJS是一個持續運行的過程,所以理論上你可以使用與數據庫相同的連接來服務所有的HTTP響應。實際上你想創建一個連接池,但NodeJS的Mongodb驅動已經自動完成了。
每個頁面應該連接到數據庫,找到一些數據,並顯示它。
當您在MongoDB驅動程序上發出查詢時,只要您在應用程序啓動時爲其提供憑據,它就會自動使用來自其內部連接池的連接。
我想要什麼/需要:以安全的方式(即不存儲上的文件的用戶可以訪問密碼)連接到需要的只是當分貝。
我會建議您在不提交給您的VCS的單獨文件中保留您的應用程序配置(取決於應用程序運行環境的任何變量)。像node-config這樣的模塊可以幫助您做到這一點。
你將結束,使用節點配置的代碼,是這樣的:
配置/ default.json:
{
"mongo": null
}
這是默認的配置文件,該文件你承諾。
配置/本地。JSON:
{
"mongo": "mongo://user:[email protected]:port/db"
}
的local.json應該由你的VCS被忽略。它包含祕密醬油。
connection.js:
var config = require('config');
var MongoClient = require('mongodb').MongoClient;
var cache;
module.exports = function(callback){
if(cache){
return callback(cache);
}
MongoClient.connect(config.get('mongo'), function(err, db){
if(err){
console.error(err.stack);
process.exit(1);
}
cache = db;
callback(db);
});
}
的你可能會如何處理重複使用數據庫連接的殘缺例如。請注意如何使用config.get(*)
獲取配置。一個實際的實現應該有更強大的錯誤處理並且防止多個連接被建立。使用Promises會使所有這一切變得更容易。
index.js:
var connect = require('./connection');
connect(function(db){
db.find({whatever: true})
});
現在,你可以要求任何你想要你的數據庫文件,並再次使用同一數據庫連接,它可以處理池爲你和你沒有你的密碼硬 - 編碼在任何地方。