Next.js MongoDB 应用实战指南
import { MongoClient } from 'mongodb';
const url = process.env.MONGODB_URI || 'mongodb://localhost:27017';
const client = new MongoClient(url);
export default async function handler(req, res) {
const { method } = req;
try {
await client.connect();
const database = client.db('nextjs-mongodb-app-example-database');
const collection = database.collection('restaurants');
// 根据不同的HTTP方法执行不同的操作
switch (method) {
case 'GET':
// 获取所有餐厅信息
const restaurants = await collection.find({}).toArray();
res.status(200).json(restaurants);
break;
case 'POST':
// 添加新的餐厅信息
const restaurant = JSON.parse(req.body);
const insertResult = await collection.insertOne(restaurant);
res.status(201).json(insertResult);
break;
default:
res.setHeader('Allow', ['GET', 'POST']);
res.status(405).end(`Method ${method} Not Allowed`);
}
} catch (error) {
res.status(500).json({ error: error.message });
} finally {
await client.close();
}
}
这个示例代码展示了如何在Next.js的API路由中使用MongoDB客户端来处理HTTP GET和POST请求。它首先建立了与MongoDB的连接,然后根据请求的方法执行不同的数据库操作。这个例子遵循了最佳实践,包括错误处理和资源清理。
评论已关闭