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");
}
});
我正在创建一个 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");
}
});