Запрос Mongodb не показывает ожидаемый результат - PullRequest
1 голос
/ 04 марта 2020

Я использую узел и express сервер для запуска mongoDb. Для подключения и схемы я использую mon goose. Я успешно подключился к базе данных и смог разместить данные с помощью почтальона, но проблема в том, что он не показывает ожидаемый запрос. Mongodb возвращает мне только идентификатор, а не запрос, который является именем и описанием

Вот модели

const mongoose = require("mongoose");
const { Schema } = mongoose;

const form = new Schema(
  {
    name: { type: String },
    description: { type: String }
  },
  {
    timestamps: true
  }
);

const formSubmit = mongoose.model("formSubmit", form);
module.exports = formSubmit;

Это мой express сервер

const express = require("express");
const port = 5000;
const cors = require("cors");
const morgan = require("morgan");
const app = express();
const formSubmit = require("./models");
const mongoose = require("mongoose");
app.use(cors());
app.use(morgan("dev"));

mongoose
  .connect(
    "url",
    {
      useUnifiedTopology: true,
      useNewUrlParser: true
    }
  )
  .then(() => console.log("DB Connected!"))
  .catch(err => {
    console.log(err);
  });

//get method
app.get("/show", async (req, res) => {
  try {
    const entrries = await formSubmit.find();
    res.json(entrries);
  } catch (error) {
    console.log(error);
  }
});

//post method

app.post("/post", async (req, res, next) => {
  try {
    const logs = new formSubmit(req.body);
    const entry = await logs.save();
    res.json(entry);
  } catch (error) {
    if (error.name === "ValidationError") {
      res.status(422);
    }
    next(error);
  }
});

app.listen(port, () => {
  console.log(`Server is running port ${port}`);
});

1 Ответ

0 голосов
/ 04 марта 2020

Мне кажется, проблема в том, что вы не правильно сохраняете документы в коллекции, поэтому при извлечении их отображаются только поля _id.

Чтобы прочитать тело запроса, необходимо добавить * 1003. *express. json () промежуточное ПО для вашего сервера. js.

 app.use(express.json());
...