![](/img/trans.png)
[英]Node/Express (Mongo) Passing of Done ("Done is not a function" error)
[英]Mongo shell methods throwing "not a function" error in express app
我正在尝试在我的快速应用程序中获取有关我的 mongoDB 数据库和数据库服务器的一些信息。 我正在使用 3 mongo shell 方法,如下所示。
app.get('/api/server-info', async function(req, res)
{
var dbVersion = await client.db("MSSMTDB").version();
var dbHostInfo = await client.db("MSSMTDB").hostInfo();
var dbStats = await client.db("MSSMTDB").stats();
var obj =
{
"dbVersion": dbVersion,
"hostInfo": dbHostInfo,
"dbStats" : dbStats
};
res.json(obj);
});
链接到此处的文档。
不幸的是,只有 db.stats() 方法对我有用,而其他两个函数正在抛出“不是 function 错误”。
经过一番调查,我发现我的 mongodb nodejs 驱动程序版本是“3.1”,并且在其文档中找不到 version() 和 hostInfo() 方法。 甚至即将发布的版本(4.0)似乎也没有这些功能。
这个问题有什么解决方案吗?
这里的问题是来自 MongoDB Node.js 驱动程序的Db class没有对应于 Mongo Z29591C998B1E41 的方法version()
和hostInfo()
请根据您的需要考虑以下替代方案:
const dbHostInfo = await db.command({hostInfo: 1});
const serverInfo = await db.admin().serverInfo();
const serverStatus = await db.admin().serverStatus();
const dbVersion = serverInfo.version;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.