虽然这一个完美的工作与 Postman 得到“欢迎消息”和后/登录请求,没有错误,也没有保存数据在mongo云,但显示无法得到响应,在POSTMAN
index.js文件
const express = require("express");
const app = express();
const dotenv = require("dotenv");
const mongoose = require("mongoose");
// Import Routes
const authRoute = require("./routes/auth");
dotenv.config();
//Connect To DB
mongoose.connect(process.env.DB_CONNECT,
{ useNewUrlParser: true, useUnifiedTopology: true },
() => console.log("connected to DB")
);
//Middleware
app.use(express.json());
//Route Middleware
app.use("/api/user", authRoute);
app.listen(3000, () => console.log("Server up and running on port 3000"));
字符串
用户架构- User.js
const mongoose = require("mongoose");
const UserSchema = new mongoose.Schema({
name : {
type: String,
required: true,
min: 6,
max: 50
},
email: {
type: String,
required: true,
min: 6,
max: 25
}
,
password: {
type: String,
required: true,
min: 6,
max: 1024
},
date:{
type: Date,
default: Date.now
}
});
module.exports = mongoose.model("User", UserSchema);
型
auth.js文件
const router = require("express").Router();
const User = require("../model/User");
router.post("/register", async (req, res) => {
const user = new User({
name : req.body.name,
email: req.body.email,
password: req.body.password
});
console.log("Entering Try Catch");
try {
console.log(user.name +" - " + user.email);
const savedUser = await user.save();
console.log("saved user = " + savedUser);
res.send(savedUser);
} catch (err) {
console.log(err);
res.status(400).send(err);
}
});
router.get("/", (req, res) => {
res.send("Welcome");
});
router.post("/login", (req, res) => {
console.log("Console Logged In");
res.send("Logged In Successful");
});
module.exports = router;
型
这将是很大的帮助,如果你能让我知道我错了。提前感谢!!
编辑:我得到所有的控制台,直到,进入try catch以及user.name和user.email
4条答案
按热度按时间bq9c1y661#
感谢大家的帮助,这不是代码错误或任何其他错误,因为我发现这一点很奇怪,在Atlas上,我允许访问我当前的IP地址,尽管在将其更改为允许访问所有它正在工作后,它仍然有这个错误,所以我猜这应该是mongo方面的问题,他们应该考虑很少发生这样的事件。
ou6hu8tu2#
提示:首先,您应该始终使用return作为响应。
试试这个:
字符串
aamkag613#
您可能需要为
express
安装body-parser
中间件,以便从req.body
获取值调试
console.log(req.body)
的一个好方法是查看是否是undefined
详细答案:What does body-parser do with express?
编辑:
最有可能的东西与您的数据库连接是问题,因为我使用您的代码(复制/粘贴),一切都为我工作正常。
您可以在
index.js
中的mongoose.connect
下面添加mongoose.connection.on('error', err => { console.log(err); });
来调试mongoose连接,您应该在发出POST请求后等待大约30秒-1分钟。x1c 0d1x的数据
下面是我的
.env
文件:DB_CONNECT=mongodb://localhost:27017/test
的
myzjeezk4#
经过几天的尝试,我通过重新安排中间件的顺序解决了这个问题
从这里:
字符串
对此:
型