猫鼬model.create()响应为空或不响应

时间:2020-01-09 03:20:33

标签: node.js express mongoose request schema

我用node + express + mongodb创建了一个小项目

在这里我称为创建用户:

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;

但是当o发出请求时,它永远不会得到响应,它将永远等待。当o从请求中取出等待时,它会得到一个空响应{“ user”:{}}

我对猫鼬文档一无所知(想法是创建一个简单的rest api,我使用python,但希望学习node)

1 个答案:

答案 0 :(得分:0)

您必须按照以下方式从用户模型创建新用户:

    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);