私はmongoose/q約束フレームワークサンプルhereから作業していますが、主にQフレームワークのサンプルが一致していないため、findOneを使用しようとするとnfbindに問題があるようです要点にあるもの。mongooseと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
の機能をモジュールではなくソースで設定しようとしましたが、役に立たなかった。
チェックもこの答えhttp://stackoverflow.com/questions/11912573/node-js-deferred-promisify-mongoose/11931908 –