我正在從貓鼬/ q承諾框架示例here,但似乎有一些問題與nfbind時,試圖使用findOne,主要是因爲從Q框架樣本似乎不匹配要點。貓鼬和q承諾
我的代碼:
var mongoose = require('mongoose');
var Q = require('q');
var user_schema = mongoose.Schema({username:String, last_touched:Date, app_ids:[String]});
var user = mongoose.model('user', user_schema);
exports.user = user;
exports.user.find = Q.nfbind(user.find);
exports.user.findOne = Q.nfbind(user.findOne);
如果我打電話user.findOne({username:'test'}).then(function(err, user) { ... }
,用戶永遠是不確定的。如果我刪除導出並使用帶回調的非諾言版本,我會得到該用戶。我錯過了一些特殊的魔法,但是在看了代碼實現之後,來自Q github和貓鼬演示的例子......沒有什麼真正跳出來的。任何想法如何讓我的findOne
與Q一起工作?
我也試圖設置nfbind
功能在源而不是在模塊中,但無濟於事。
檢查也是這個答案http://stackoverflow.com/questions/11912573/node-js-deferred-promisify-mongoose/11931908 –