在mongoose中使用bluebird

2021-07-23 15:29:45 字數 1663 閱讀 3598

如果我們需要在mongoose中使用promise方法,一般會想到mongoose自帶的mpromise,但是這種方法,已經不再被建議了,雖然目前一般情況下還不影響使用,但如果能夠使用一種穩妥的方式最好不過。

替代方法有很多,例如require('q')koayield等,這裡我介紹一種使用bluebird的方法。

網上很多關於使用bluebird的說法,都偏向於理論,就是不告訴你到底怎麼用,或者說了你也看不懂,不過好在我忙活了不少時間後,終於試出來了想要的結果。

用具體例子說話,比如我們這裡要使用mongoose查詢資料庫中的資料,並且需要將查詢出來的資料,返回(return)到乙個函式中。

首先:

在專案的入口檔案中,也就是你啟動專案的那個主檔案中,新增以下**:

var mongoose=require('mongoose');

var bluebird = require('bluebird');

//注意下面這句

mongoose.promise=bluebird;

其中,mongoose.promise=bluebird;,這句話的意思,就是將mongoose已經不被建議的promise方法替換為bluebird

然後:

在你查詢資料庫的那個檔案中,比如某個***xx_controler.js檔案的查詢方法中,這麼寫(舉個栗子代替):

function

getweathercache

(cityname))

.exec()

.then(function

(promiseresult))

.error(function

(error))

//這個promise物件需要返回

return getresult;

}

這裡的getresult變數中的值,就是promise物件,裡面並不是記錄你查詢資料庫返回的資料,而是儲存promise狀態,就像下面這樣:

最後:

想要接收getweathercache()函式返回的getresult物件:

getweathercache(city)

.then(function

(promisedata)

) .error(function

(error)

)

其中,.then()隨便寫幾個都行。

這個時候,promisedata就是你從資料庫中請求得到的資料。

mongoose使用教程

npm install mongoose const mongoose require mongoose function 下面 相當於操作圖形介面把乙個建立好的資料庫 test 開啟連線 mongoose.connection.once open err else const mongoose r...

mongoose使用簡記

mongodb中集合相當於表,常用指令 mongo 進入資料庫 use yourdatabase 來選擇你的資料集,這個跟關係型中的一樣 show collections 來檢視你資料集中的表,collection就是關係型中的表 db.createcollection name,option na...

node 關於 mongoose 使用

npm i mongoosevar mongoose require mongoose mongoose.set usecreateindex true 新版本對索引的處理方式有所變化,無此 會有警告 mongoose.connect mongodb localhost test mongoose....