Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript estimatedDocumentCount()返回一个对象而不是一个数字_Javascript_Node.js_Mongodb_Express_Mongoose - Fatal编程技术网

Javascript estimatedDocumentCount()返回一个对象而不是一个数字

Javascript estimatedDocumentCount()返回一个对象而不是一个数字,javascript,node.js,mongodb,express,mongoose,Javascript,Node.js,Mongodb,Express,Mongoose,每当用户检索我的web应用程序的主页时,我都试图显示MongoDB数据库中的文档数。下图显示了我希望如何实现这一点: 下面是路由器的相关代码片段 app.route(“/”) .得到( (请求、恢复、下一步)=>{ res.locals.countOfWords=countAllWords(); next(); }, (请求、恢复、下一步)=>{ renderIndex(需求、资源); } ); 以及控制器的相关代码段 函数countAllWords(){ myModel.estimatedD

每当用户检索我的web应用程序的主页时,我都试图显示MongoDB数据库中的文档数。下图显示了我希望如何实现这一点:

下面是路由器的相关代码片段

app.route(“/”)
.得到(
(请求、恢复、下一步)=>{
res.locals.countOfWords=countAllWords();
next();
},
(请求、恢复、下一步)=>{
renderIndex(需求、资源);
}
);
以及控制器的相关代码段

函数countAllWords(){
myModel.estimatedDocumentCount({},(err,result)=>{
返回结果;//返回一个对象而不是整数
});
}
函数renderIndex(请求、恢复){
res.render('索引'{
“countOfWords”:res.locals.countOfWords
});
}
但是,控制器返回的
结果
是查询对象,而不是整数。因此,我在网页上看到
数据库中有[object object]文档,而不是
数据库中有12个文档

是什么让我更加困惑:当我用
console.log(result)
替换
returnresult
语句时,我在控制台中看到了预期的数字

函数countAllWords(){
myModel.estimatedDocumentCount({},(err,result)=>{
console.log(result);//按预期显示数字
});
}
我的问题是,如何确保我将号码传回路由器而不是对象,以便它可以显示在网页上?

我使用的是NodeJS、ExpressJS和Mongoose的最新版本


非常感谢您的帮助。

只需在mongoose中使用async Wait and count()

async countAllWords()=>{
    let countOfmymodel = await userModel.count({})
}

返回对象而不是整数
在何处返回?如果对myModel.estimatedDocumentCount的回调是异步的,则返回结果不返回任何地方