mongoose / mongodb Я могу публиковать, но не получать данные. Возвращает только код состояния 500 без ошибок - PullRequest
0 голосов
/ 09 мая 2020

Это следующее. js приложение с mon goose, подключенное к серверу атласа mongodb. Я получаю код состояния 500 только из вызова fetch, но я знаю, что в моем атласе 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;
  }
};

1 Ответ

0 голосов
/ 09 мая 2020

оказывается, ошибка заключалась в том, что моя выборка должна была быть ожиданием.

const employee = Employee.find ({}); ----> const employee = await Employee.find ({});

...