无法获得 mongodb 与 nodejs 的连接

Could not get mongodb connectivity with nodejs

我已经在 nodejs 中尝试过,但我的控制台输出未定义

// Connect using a MongoClient instance
const MongoClient = require("mongodb").MongoClient;
const test = require("assert");
// Connection url
const url = "mongodb://localhost:27017";
// Database Name
const dbName = "test";
// Connect using MongoClient
const mongoClient = new MongoClient(url);
mongoClient.connect(function (err, client) {
  const db = client.db(dbName);
  try {
    db.collection("employeeDetails")
      .find({})
      .toArray(function (err, res) {
        console.log(res);
      });
  } catch (e) {
    console.log(e);
  } finally {
    client.close();
  }
});

我在mongodb中有数据:

如何在我的控制台中获取我的员工详细信息任何帮助将不胜感激

这对我有用 let result = await collection(collection).find(query).toArray()

您在获得结果之前关闭了连接。如果您在 toArray() 内打印 err 以及结果,您将看到以下错误 -

MongoExpiredSessionError: Cannot use a session that has ended

发生这种情况是因为 db.collection("employeeDetails")... 正在被调用但等待回调中的结果,直到它继续前进并且因为在该语句之后你退出 try-catch,你进入 finally 关闭会话。当处理 db.collection... 调用时,此会话已结束并且您会看到此错误。

您可以使用异步等待。修改您的代码如下 -

// Connect using a MongoClient instance
const MongoClient = require("mongodb").MongoClient;
const test = require("assert");
// Connection url
const url = "mongodb://localhost:27017";
// Database Name
const dbName = "test";
// Connect using MongoClient
const mongoClient = new MongoClient(url);
mongoClient.connect(async function (err, client) {
  const db = client.db(dbName);
  try {
    const result = await db.collection('employeeDetails').find({}).toArray();
    console.log(result);
  } catch (e) {
    console.log(e);
  } finally {
    client.close();
  }
});

mongoClient.connect(async function (err, client).. 行中,我们在回调函数之前和后面使用异步,我们可以使用 -

获取结果
const result = await db.collection('employeeDetails').find({}).toArray();

在此之后 console.log 将正确打印您的结果。