Javascript estimatedDocumentCount()返回一个对象而不是一个数字
每当用户检索我的web应用程序的主页时,我都试图显示MongoDB数据库中的文档数。下图显示了我希望如何实现这一点: 下面是路由器的相关代码片段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
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的回调是异步的,则返回结果不返回任何地方