如果我們需要在用具體例子說話,比如我們這裡要使用mongoose
中使用promise
方法,一般會想到mongoose
自帶的mpromise
,但是這種方法,已經不再被建議了,雖然目前一般情況下還不影響使用,但如果能夠使用一種穩妥的方式最好不過。替代方法有很多,例如
require('q')
koa
yield
等,這裡我介紹一種使用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....