Я работаю с образцом фреймворка обещаний mongoose/q здесь, но, похоже, у меня есть некоторые проблемы с nfbind при попытке использовать findOne, в основном из-за того, что образцы из структуры 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
в источнике, а не в модуле, но безрезультатно.