約束事のためのmongooseとQの使用。しかし、結果は正しいデータを返すマングースの約束と空{}Node.JS Q promiseでのmongooseリクエストreturn empty {}
var Q = require("q");
var deferred = Q.defer();
User.find({}, function (err, users) {
if (err) {
deferred.reject(next(err));
} else {
deferred.resolve(users);
}
});
return deferred.promise;
同じ要求であるが、完全な奇妙な秩序を持っています
console.log("Label 1");
console.log("Label 2 Users = " + getUsers());
console.log("Label 3");
...
getUsers = function(next) {
User.find({}).exec().
.then(function (err, users) {(
if (users) {
console.log("Label 4 Users = " + JSON.stringify(users));
return user;
}
)}
.catch(err) {
return next(err);
});
}
結果:
ラベル1 - >ラベル2 - > [ユーザー]を=未定義 - >ラベル3 - >ラベル4ユーザー= {...}
Node.Js v7.5; mongoose v4.8.3; q v1.4.1
間違いはどこですか?どのようにして私は関数でmongooseを呼び出すことができますか?あなたはマングースのv4.8.3を使用している場合
のですか?私が見ているのは、次の(誤り)です。また、最初にmongoosesを約束して使うのはなぜですか? –