Como se ha dicho antes, el código no funcionará de la manera que es. Una solución para eso sería usar una función de devolución de llamada, pero si crees que te llevaría a un "Infierno de devolución de llamada", puedes buscar "Promesas".
Una posible solución usando una función de devolución de llamada:
//DECLARE numberofDocs OUT OF FUNCTIONS
var numberofDocs;
userModel.count({}, setNumberofDocuments); //this search all DOcuments in a Collection
si desea buscar el número de documentos en base a una consulta, se puede hacer esto:
userModel.count({yourQueryGoesHere}, setNumberofDocuments);
setNumberofDocuments es una función separeted :
var setNumberofDocuments = function(err, count){
if(err) return handleError(err);
numberofDocs = count;
};
Ahora puede obtener el número de Documentos en cualquier lugar con un get Función:
function getNumberofDocs(){
return numberofDocs;
}
var number = getNumberofDocs();
Además, se utiliza esta función asíncrona dentro de una sincrónica mediante el uso de una devolución de llamada, ejemplo:
function calculateNumberOfDoc(someParameter, setNumberofDocuments){
userModel.count({}, setNumberofDocuments); //this search all DOcuments in a Collection
setNumberofDocuments(true);
}
esperan que los pueda ayudar a otros. :)
Podría mostrar algo de código. – almypal
Si está utilizando ES 2016, puede ajustar la llamada para contar dentro de una promesa y llamarla con un generador. – mikeyGlitz