嗨,我想用mongoose连接我的nextjs应用程序到mongodb数据库,但当我键入await dbconnect()时,它返回一个错误,说我应该设置topLevelAwait=true,但在nextjs.config文件中没有这样的事情,即使我自己键入它也返回相同的错误
我试着在谷歌上搜索它,我发现了一个堆栈溢出问题,但它是为早期版本的next-js和它不工作的未来13
文件dbConect
import mongoose from "mongoose";
const dbConnect = async () => {
try {
const { connection } = mongoose.connect(
"mongodb+srv://<username>:<password>@cluster0.slqa5pz.mongodb.net/?retryWrites=true&w=majority"
);
if (connection.readyState == 1) {
console.log("database connected");
}
} catch (error) {
console.log(error);
}
};
export default dbConnect;
文件API
import dbConnect from "@/database/dbConnect"
export async function GET(request) {
await dbConnect()
return new Response('Hello, Next.js!')
}
1条答案
按热度按时间q7solyqu1#
要激活顶级await,您必须以这种方式配置tour next.config.js文件:
由于你使用的是mongoose,我建议你添加serverComponentsExternalPackages选项。在未来的nextjs更新中可能不需要,但到目前为止,我必须添加它才能让我的项目正常工作。