mongoskin封裝mongdo驅動的呼叫方式

2021-07-05 05:06:12 字數 1126 閱讀 9763

最近在看mean框架,在學習過程中想對mongoskin介面再進行一次封裝,實現的目標:是資料庫連線資訊寫入配置檔案,在實呼叫過程中不涉及資料庫的開啟和關閉等操作,具體的封裝介面在後續的文章中呈現。封裝介面就會涉及到對原介面的了解,但是mongoskin介面的文件又不是很完善,因此就需要對mongodb介面的了解。

在index.js檔案的末尾36行處exports.db = exports.mongoclient.connect;定義我們連線資料庫的db方法(例如:mongo.db('mongodb://localhost/test');),但是這裡請注意mongoclient是mongoskin模組定義的mongoclient。

接著在mongo_client.js檔案中會建立skindb的例項,在實際操作中我們會呼叫collection方法。在閱讀collection方法的原始碼時,其中會呼叫collection.open方法(db.js檔案的64行處collection.open(callback);),而collection.open方法中又會呼叫db.open方法(collection.js檔案49行處this._skin_db.open(function(err, db)),但是在這兩個檔案找了半天也沒找到open函式。內心苦思冥想,難道是nodejs的prototype是否加下劃線的函式同等,這個想法明顯是錯誤的,上網搜尋一下無解。靈機一動,加console.log列印,之前的呼叫流程也是加列印資訊跟蹤得出的。在db.js檔案63行處新增console.log("", collection.open, collection._open);列印資訊,注意要輸出空字串,否則輸出內容為[function] [function]。列印資訊輸出為:

function (callback)  else 

self._emitter.emit('open', err, p_native);

});}

return this;

}function (callback) );

}

對照原始碼發現collection._open函式時後者,而前者對應utils.js中150行處的open方法。原來在前者函式中會呼叫_open(因為大多數模組都是基於makeskinclass類的),這樣解釋就合理了。後續的**就好分析了,到此為止吧,不足之處敬請諒解。

Windows上通過Ruby訪問MongoDB

1 安裝ruby。略過。2 更新rubygem gem update system 3 安裝mongodb的drivers gem install mongo 想要在windows上執行該驅動,需要先安裝ruby devkit以便編譯c擴充套件。gem install bsongem install...

Mac下使用HomeBrew安裝MongoDb

1.homebrew的安裝 mac下 首先開啟終端,輸入 ruby e curl insecure fssl 這句話執行完會叫你輸入密碼,輸入你的賬戶密碼即可。2.正常安裝完成會有提示instalation successful。輸入 brew 會彈出你的brew資訊,就算安裝完成了。下面是mong...

Mac 下使用homebrew安裝MongoDB

1 安裝homebrew 終端輸入 usr bin ruby e curl fssl 安裝完成homebrew之後可以通過brew version來檢視當前homebrew版本 2 安裝mongodb 終端輸入 brew install mongodb建立資料儲存目錄 終端輸入 sudo mkdir...