【发布时间】:2021-12-04 10:56:31
【问题描述】:
我试图为 Next.js + Typescript 应用程序创建一个缓存的猫鼬连接,但使用的是:
let cached = global.mongoose;
if (!cached) {
cached = global.mongoose = { conn: null, promise: null };
}
global.mongoose 显示以下错误:
Element implicitly has an 'any' type because type 'typeof globalThis' has no index signature.ts(7017)
编辑:
这是完整的/lib/dbConnect.ts 文件
import mongoose, { Connection } from "mongoose";
const MONGODB_URI: string = process.env.MONGODB_URI!;
if (!MONGODB_URI) {
throw new Error(
"Please define the MONGODB_URI environment variable inside .env.local"
);
}
let cached = global.mongoose;
if (!cached) {
cached = global.mongoose = { conn: null, promise: null };
}
async function dbConnect() {
if (cached.conn) {
return cached.conn;
}
if (!cached.promise) {
const opts = {
bufferCommands: false,
};
cached.promise = mongoose.connect(MONGODB_URI, opts).then((mongoose) => {
return mongoose;
});
}
cached.conn = await cached.promise;
return cached.conn;
}
export default dbConnect;
【问题讨论】:
-
把整个
lib/dbConnect.js文件贴出来吧,我不认为错误是由你上面的代码引起的。 -
好的,添加了整个文件的代码
-
您发现问题了吗?我也有同样的问题
标签: reactjs typescript mongodb mongoose next.js