无法获得 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
将正确打印您的结果。
我已经在 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
将正确打印您的结果。