如何使用 async 和 await 连接到 mongoDB 数据库?
how to use async and await to connect to mongoDB database?
我是 JavaScript 的新手,目前正在学习 mongoDB 节点。
代码 Bellow 在回调函数中,但我想使用 async 连接到 mongoDB 数据库,并使用 try and catch 等待。
const mongoose = require("mongoose");
mongoose.connect("mongodb://localhost/selfdb");
mongoose.connection
.once("open", () => {
console.log("connection has been made!");
})
.on("error", (error) => {
console.log("connection error:", error);
});
我试过这样做:
const mongoose = require("mongoose");
async function main() {
const uri = "mongodb://localhost/selfdb";
const client = new mongoose(uri);
try {
await client.connect();
console.log("connection has been made!");
} catch (e) {
client.error(e);
} finally {
await client.close();
}
}
main().catch(console.error);
但我收到以下错误:
TypeError: mongoose is not a constructor
我怎样才能正确地做到这一点?
我是不是犯了什么愚蠢的错误?
我认为更好的连接方式是这样的
const mongoose = require('mongoose')
const connectDB = async () => {
try {
const conn = await mongoose.connect(process.env.MONGO_URI)
console.log(`MongoDB Connected: ${conn.connection.host}`)
}
catch (error) {
console.log(error)
process.exit(1)
}
}
module.exports = connectDB
Mongo URI 在 .env 文件中,但你可以用你的连接字符串替换它(但在 .env 文件中更安全)
然后在server.js或index.js(入口文件)
const connectDB = require('path_to_file')
connectDB()
我是 JavaScript 的新手,目前正在学习 mongoDB 节点。 代码 Bellow 在回调函数中,但我想使用 async 连接到 mongoDB 数据库,并使用 try and catch 等待。
const mongoose = require("mongoose");
mongoose.connect("mongodb://localhost/selfdb");
mongoose.connection
.once("open", () => {
console.log("connection has been made!");
})
.on("error", (error) => {
console.log("connection error:", error);
});
我试过这样做:
const mongoose = require("mongoose");
async function main() {
const uri = "mongodb://localhost/selfdb";
const client = new mongoose(uri);
try {
await client.connect();
console.log("connection has been made!");
} catch (e) {
client.error(e);
} finally {
await client.close();
}
}
main().catch(console.error);
但我收到以下错误:
TypeError: mongoose is not a constructor
我怎样才能正确地做到这一点? 我是不是犯了什么愚蠢的错误?
我认为更好的连接方式是这样的
const mongoose = require('mongoose')
const connectDB = async () => {
try {
const conn = await mongoose.connect(process.env.MONGO_URI)
console.log(`MongoDB Connected: ${conn.connection.host}`)
}
catch (error) {
console.log(error)
process.exit(1)
}
}
module.exports = connectDB
Mongo URI 在 .env 文件中,但你可以用你的连接字符串替换它(但在 .env 文件中更安全)
然后在server.js或index.js(入口文件)
const connectDB = require('path_to_file')
connectDB()