前に述べたように、コードはそのままでは機能しません。それに対する解決策はコールバック関数を使用することですが、「コールバック地獄」に陥ると思われる場合は、「Promisses」を検索できます。
コールバック関数を使用した可能な解決策:
//DECLARE numberofDocs OUT OF FUNCTIONS
var numberofDocs;
userModel.count({}, setNumberofDocuments); //this search all DOcuments in a Collection
クエリに基づいてドキュメントの数を検索する場合は、次のようにすることができます。
userModel.count({yourQueryGoesHere}, setNumberofDocuments);
setNumberofDocuments は分離された関数です:
var setNumberofDocuments = function(err, count){
if(err) return handleError(err);
numberofDocs = count;
};
getFunction を使用して、どこからでもドキュメントの数を取得できるようになりました。
function getNumberofDocs(){
return numberofDocs;
}
var number = getNumberofDocs();
さらに、コールバックを使用して同期関数内でこの非同期関数を使用します。例:
function calculateNumberOfDoc(someParameter, setNumberofDocuments){
userModel.count({}, setNumberofDocuments); //this search all DOcuments in a Collection
setNumberofDocuments(true);
}