【发布时间】:2012-12-14 20:01:39
【问题描述】:
我正在使用 mongoose/q promises 框架示例 here,但在尝试使用 findOne 时似乎遇到了一些 nfbind 问题,主要是因为来自 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 的示例以及来自 mongoose 演示的示例之后......没有什么真正跳出来的。关于如何让findOne 与 Q 一起工作的任何想法?
我也尝试在源代码而不是模块中设置nfbind 函数,但无济于事。
【问题讨论】:
标签: node.js mongoose deferred promise q