2016-11-12 58 views
0

我是一個剛剛啓動javascript的java程序員。在NodeJS中構造數據庫代碼

我在mlabs上創建了一個mongo數據庫,現在我正在編寫連接到數據庫的代碼。

數據庫代碼如何在節點中構造,是否有方法以非阻塞方式連接到數據庫?

+0

我發現這個帖子,可能會有所幫助.. [http://stackoverflow.com/questions/22160709/non-blocking-mongodb-nodejs](http://stackoverflow.com/questions/22160709/non-blocking- mongodb-nodejs) – illcrx

+0

驅動程序文檔http://mongodb.github.io/node-mongodb-native/2.2/是一個很好的閱讀。看起來代碼可以使用回調或ES6承諾(Node本身支持)來構建。 – traktor53

回答

0

Mongodb's official driver通過回調異步連接到數據庫。

自述:

var MongoClient = require('mongodb').MongoClient 
    , assert = require('assert'); 

// Connection URL 
var url = 'mongodb://localhost:27017/myproject'; 
// Use connect method to connect to the Server 
MongoClient.connect(url, function(err, db) { 
    assert.equal(null, err); 
    console.log("Connected correctly to server"); 

    db.close(); 
}); 

說你想發送的find()結果作爲一個JSON格式的迴應,你會:

  • 連接數據庫。
  • 裏面的connect回調函數裏,調用一個db.collection.find()
  • find()回調函數,將結果傳遞給響應發送處理程序。 (res對象中的一個快速get())。

所以模式是:嵌套的回調和終止與響應對象/ MVC控制器/類似的東西。

+0

那麼每次我想要做數據庫操作時,都必須編寫MongoClient.connect? –

+0

如果要保持連接處於打開狀態,可以使用其他位置的connect回調中的db對象。 –

+0

它將保持可用,直到您用db.close()關閉它 –