【发布时间】:2021-07-24 22:23:19
【问题描述】:
使用重用现有连接的打字稿连接到 MongoDB 的最佳方式是什么。我最近将我的 JavaScript 代码库迁移到 typescript 并且 typescript 中的 MongoDB 连接引发错误
我需要如何使用 typescript 连接 MongoDB 驱动程序,以便我可以重用现有的数据库连接或帮助我解决连接问题
这是(node:3732) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'conn' of undefined下面代码中的错误
import { MongoClient, Db } from "mongodb";
const { DATABASE_URL, DATABASE_NAME } = process.env;
type MongoConnection = {
client: MongoClient;
db: Db;
};
declare global {
namespace NodeJS {
interface Global {
mongodb: {
conn: MongoConnection | null;
promise: Promise<MongoConnection> | null;
};
}
}
}
let cached = global.mongodb;
async function connectToDatabase() {
if (cached.conn) {
return cached.conn;
}
if (!cached.promise) {
const opts = {
useNewUrlParser: true,
useUnifiedTopology: true,
};
cached.promise = MongoClient.connect(DATABASE_URL as string, opts).then(
(client) => {
return {
client,
db: client.db(DATABASE_NAME),
};
}
);
}
cached.conn = await cached.promise;
return cached.conn;
}
export { connectToDatabase };
【问题讨论】:
标签: node.js typescript mongodb