POST 方法未向 mongodb 发送数据

POST method not sending data to mongodb

我正在创建一个 MERN 应用程序,我创建了后端并想使用 REST 客户端 vscode 扩展对其进行测试。像这样:

`POST http://localhost:4000/signup
Content-Type: application/json

{
    "email": "something@gmail.com",
    "username": "something",
    "password": "something"
}`

它 returns 200 OK 但没有数据发送到 MongoDB。 这是我从上面的测试中得到的:

    HTTP/1.1 200 OK
X-Powered-By: Express
Access-Control-Allow-Origin: *
Content-Type: application/json; charset=utf-8
Content-Length: 2
ETag: W/"2-vyGp6PvFo4RvsFtPoIWeCReyIC8"
Date: Fri, 14 May 2021 06:51:53 GMT
Connection: close

{}

这是 server.ts 文件:

import express from "express";
import * as dotenv from "dotenv";
import mongoose from "mongoose";
import endpointsConfig from "./endpoints.config";
import routerUrls from "./routes/router";
import cors from "cors";
dotenv.config();
const app = express();
//database connection
mongoose.connect(endpointsConfig.DataBaseUrl, { useNewUrlParser: true }, () => {
  console.log("database connection is success");
});
app.use(express.json());
app.use(cors());
//base path
app.use("/", routerUrls);
app.listen(4000, () => console.log("server is up and running on port 4000"));

router.ts 文件:

import express from "express";
import mongooseModel from "../models/mongooseModel";

const router = express.Router();

type UserData = {
  email: string;
  username: string;
  password: string;
};

router.post("/signup", (req, res) => {
  const signupUser = new mongooseModel({
    email: req.body.email,
    username: req.body.username,
    password: req.body.password,
  });

  signupUser
    .save()
    .then((data: UserData) => {
      res.json(data);
    })
    .catch((error: string) => {
      res.json(error);
    });
});

export default router;

和猫鼬模型:

import mongoose from "mongoose";

const signupTemplate = new mongoose.Schema({
  email: {
    type: String,
    required: true,
  },
  username: {
    type: String,
    required: true,
  },
  password: {
    type: String,
    required: true,
  },
  date: {
    type: Date,
    default: Date.now,
  },
});

const mongooseModel = mongoose.model("usertable", signupTemplate);

export default mongooseModel;

从 MongoDB 云仪表板我看到连接良好,但不明白哪里出了问题

代码没有任何问题。更有可能是连接字符串错误。

能不能在回调中加上err参数,看看有没有打印出来。

mongoose.connect(endpointsConfig.DataBaseUrl, { useNewUrlParser: true }, (err) => {
    if (err) {
        console.log(err)
    } else {
        console.log("database connection is success");
    }
});