0
私はひどく立ち往生しています。多くは試してみましたが、価値がありません。
私はmongodbからデータを読み込んでいるnodejsアプリケーションを持っています。
私はfetchMongo()
メソッドと他のすべての関数を呼び出しているところから、メインメソッドを持っています。結果をメインに返すには、fetchMongo
関数が必要です。 mainメソッドは、すべての関数に渡されるオブジェクトobj
を持っています。
以下のコードを試してみました。
console.log
内部fetchMongo()
は正常に動作しますが、fetchMongo()
は値をMainに戻していません。
助けてください。mongoose findOneメソッドから呼び出し元関数に値を返す方法
function fetchMongo(obj)
{
var defer = Q.defer();
serviceHealthConfig.findOne({}, '', { sort: {'_id' : -1} }, function(err, nodes){
var struct={}
if(err)
console.log(err);
//console.log(nodes);
obj = nodes;
return obj;
});
defer.resolve(obj);
return defer.promise;
}
function main(){
var obj = { };
var nodesObject = fetchMongo(obj)
.then(methOne(obj))
.then(methTwo(obj))
.then(methThree(obj))
}
'serviceHealthConfig'の中に' defer.resolve(obj); 'を入れる必要があります。 'defer.resolve()'に到達すると、おそらく 'serviceHealthConfig'はまだMongoのレコードを探しています。 –
また、findOneにはパラメータが必要だと思います。 – rout0802