【发布时间】:2020-08-24 15:33:54
【问题描述】:
这是一个将 mongoose 连接到 mongodb atlas 服务器的 next.js 应用程序。我只从 fetch 调用中获得状态代码 500,但我知道我的 mongodb 地图集中有很好的数据。我使用相同的模型发布就好了。有什么想法我哪里出错了吗?
这是我的连接组件:
import mongoose from "mongoose";
const connection = {};
const dbConnect = async () => {
if (connection.isConnected) {
return;
}
const db = await mongoose.connect(process.env.mongodb.uri, {
useNewUrlParser: true,
useUnifiedTopology: true,
});
connection.isConnected = db.connections[0].readyState;
};
export default dbConnect;
我的模特:
const mongoose = require("mongoose");
const EmployeeSchema = new mongoose.Schema({
companyId: {
type: String,
required: [true],
maxlength: [200],
},
firstName: {
type: String,
required: [true, "A first name is required"],
maxlength: [50, "First name cannot be longer than 50 characters"],
},
lastName: {
type: String,
required: [true, "A last name is required"],
maxlength: [50, "Last name cannot be longer than 50 characters"],
},
});
module.exports =
mongoose.models.Employee || mongoose.model("Employee", EmployeeSchema);
最后,我的终点:
import dbConnect from "../../../utils/dbConnect";
import Employee from "../../../models/Employee";
dbConnect();
export default async (req, res) => {
const { method } = req;
switch (method) {
case "GET":
try {
const employee = Employee.find({});
if (!employee) {
res.status(400).json({ success: false });
}
res.status(200).json({ success: true, data: employee });
} catch (error) {
res.status(500).json({ success: false, data: error });
}
break;
case "POST":
try {
const employee = Employee.create(req.body);
if (!employee) {
res.status(400).json({ success: false });
}
res.status(201).json({ success: true, data: employee });
} catch (error) {
res.status(500).json({ success: false, data: error });
}
break;
default:
res.status(400).json({ success: false });
break;
}
};
【问题讨论】: