Ich arbeite von der Mongoose/q verspricht Framework-Beispiel here, aber scheinen einige Probleme mit der Nfbind beim Versuch zu haben, findOne zu verwenden, vor allem da die Proben aus dem Q Rahmen nicht übereinstimmen diejenigen im Kern.mongoose und q verspricht
Mein Code:
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);
Wenn ich user.findOne({username:'test'}).then(function(err, user) { ... }
nennen, der Benutzer ist immer undefiniert. Wenn ich den Export entferne und die nicht versprochene Version mit Rückrufen verwende, bekomme ich den Benutzer. Mir fehlt eine spezielle Magie, aber nachdem ich mir die Code-Implementierung angesehen habe, das Beispiel von Q GitHub und von der Mungo-Demo ... Nichts springt wirklich heraus. Irgendwelche Ideen, wie ich einen findOne
mit Q arbeiten kann?
Ich habe auch versucht, die nfbind
Funktionen in der Quelle und nicht im Modul, aber ohne Erfolg zu setzen.
prüfen auch diese Antwort http://stackoverflow.com/questions/11912573/node-js-deferred-promisify-mongoose/11931908 –