Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typescript POST方法不向mongodb发送数据_Typescript_Mongodb_Express_Post - Fatal编程技术网

Typescript POST方法不向mongodb发送数据

Typescript POST方法不向mongodb发送数据,typescript,mongodb,express,post,Typescript,Mongodb,Express,Post,我正在创建一个MERN应用程序,我创建了后端,并希望使用REST客户端vscode扩展对其进行测试。像这样: `POST http://localhost:4000/signup Content-Type: application/json { "email": "something@gmail.com", "username": "something", "password&qu

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

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

{
    "email": "something@gmail.com",
    "username": "something",
    "password": "something"
}`
它返回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"));
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;
router.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"));
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 cloud dashboard中,我看到连接良好,但不知道出了什么问题

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

能否在回调中添加err参数,以查看是否打印出任何内容

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

您是对的,问题在于连接字符串,更确切地说是我加载.env变量的方式。非常感谢。