Mon goose model.create () отвечает пусто или не отвечает - PullRequest
0 голосов
/ 09 января 2020

Я создал небольшой проект с узлом + экспресс + mongodb

Здесь я вызываю пользователя create:

const express = require("express");
const User = require("../models/user");

const router = express.Router();

router.post("/register", async (req, res) => {
  try {
    const user = await User.create(req.body);
    return res.send({ user });
  } catch (e) {
    return res.status(400).send({ error: "Registration failed" });
  }
});

module.exports = app => app.use("/auth", router);

и вот схема для пользователя:

const mongoose = require("mongoose");

const UserSchema = new mongoose.Schema({
  name: {
    type: String,
    require: true
  },
  email: {
    type: String,
    require: true,
    unique: true,
    lowercase: true
  },
  password: {
    type: String,
    require: true,
    select: false
  },
  createdAt: {
    type: Date,
    default: Date.now
  }
});

const User = mongoose.model("User", UserSchema);

module.exports = User;

Но когда вы делаете запрос, он никогда не получает ответа, он ждет вечно. И когда я убираю ожидание из запроса, он получает пустой ответ {"пользователь": {}}

Я немного растерялся, просматривая документацию mon goose (идея состоит в том, чтобы сделать простой остальные API, я использую с python, но ищу учить узел)

1 Ответ

0 голосов
/ 09 января 2020

Вы должны создать нового пользователя из модели пользователя следующим образом:

    const express = require("express");
    const User = require("../models/user");

    const router = express.Router();

    router.post("/register", async (req, res) => {
      try {
        var user = new User(request.body);
        var result = await user.create();
        return res.send({ result });
      } catch (e) {
        return res.status(400).send({ error: "Registration failed" });
      }
    });

module.exports = app => app.use("/auth", router);
...