我是Next.js的初学者,我想在Next.js中使用mongoose,但我不知道在哪里连接到数据库。当我在Express中使用Mongoose时,我连接到app.js
中的数据库,所以MongoDB只在启动时连接一次。
// app.js
const express = require('express');
const mongoose = require("mongoose");
const userRouter = require('./routes/user_actions');
const app = express();
// Connect to MongoDB; this code will only run once when the app starts.
await mongoose.connect('mongodb://localhost:27017/user');
app.use('/user', userRouter);
module.exports = app;
字符串
但是在Next.js中,我不知道在哪里连接到数据库。我在app/route.js
中连接到数据库,但每个请求都会连接到数据库,这不是我想要的。我想知道是否有可能在Next.js中启动时运行一次代码,就像Express一样,而不是在每次发出请求时运行一次代码。
// app/route.js
import {NextResponse} from 'next/server'
import mongoose from 'mongoose'
// Connect to MongoDB; this code will run on every request.
mongoose.connect('mongodb://localhost:27017/user')
export async function POST(request: Request) {
const res = await request.json()
console.log(request);
console.log(res);
return NextResponse.json({hello: 'world'})
}
型
我注意到一个类似的问题here,但没有答案。
我应该在Next.js中做什么?
- 谢谢-谢谢
1条答案
按热度按时间eufgjt7s1#
使用
mongoose.connection.readyState
。返回:
字符串