Post 请求在 MERN 上待处理
Post request pending on MERN
我正在尝试学习 MERN 堆栈。我正在创建我的第一个非常简单的网站。现在,我创建了一条路线,我在其中创建了一个用户,使用传递给 throw 主体的数据。这是服务器的代码:
const express = require('express');
const cors = require('cors');
const mongoose = require('mongoose');
require('dotenv').config();
const app = express();
const port = process.env.PORT || 5000;
app.use(cors);
app.use(express.json());
const uri = process.env.ATLAS_URI;
mongoose.connect(uri, { useNewUrlParser:true });
const connection = mongoose.connection;
connection.once('open', () =>{
console.log("MongoDB database connection established succesfully")
})
const usersRouter = require('./routes/users');
app.use('/users', usersRouter);
app.listen(port, () => {
console.log(`Server is running on port: ${port}`);
});
现在,这是用户路由器文件的代码,我将代码放入:
const router = require('express').Router();//setting it as a express router
let User = require('../models/user.model');//requise the model created before
router.route('/').get((req, res) => {
User.find()//mongoose method, returns a promise
.then(users => res.json(users))//return the list of user
.catch(err => res.status(400).json('Error: ' + err));
});
router.route('/add').post((req, res) => {
const username = req.body.username;
const newUser = new User({username});
newUser.save()
.then(() => res.json('User added!'))
.catch(err => res.status(400).json('Error: ' + err));
});
module.exports = router;
最后,这里是模型用户模式:
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
//create the schema for the user
//like the model in Flask
const userSchema = new Schema({
username: {
type: String,
required: true,
unique: true,
trim: true,
minlength: 3
},
},{
timestamps:true,
});
const User = mongoose.model('User', userSchema); //create the model, via the schema
module.exports = User;
现在,为了测试它是否正确,在实现其他代码和前端之前,我想测试一下。首先我想添加一个新用户,看看 API 是否正常工作。我正在使用邮递员。我在 URL 上发送了请求:http://127.0.0.1:5000/users/add
,正文中包含以下 json:{"username": "name"}
。然后我发送,但 Postman 继续说它正在发送请求,并且持续了几分钟。我不明白问题是否出在承诺上,太低了,是不是我在代码或测试配置中写错了什么,是 Mongo 数据库有问题,还是其他任何问题。你能帮我吗?谢谢
在您的数据库连接中,您没有等待 promise
成为 resolved
require('dotenv').config();
const express = require('express');
const cors = require('cors');
const mongoose = require('mongoose');
const app = express();
app.use(cors());
app.use(express.json());
const port = process.env.PORT || 5000;
const connectDB = async () => {
try {
const conn = await mongoose.connect(process.env.ATLAS_URI, {
useUnifiedTopology: true,
useNewUrlParser: true,
});
console.log(`MongoDB Connected: ${conn.connection.host}`);
} catch (err) {
console.error(`Error: ${err.message}`);
process.exit(1);
}
};
connectDB()
const usersRouter = require('./routes/users');
app.use('/users', usersRouter);
app.listen(port, () => {
console.log(`Server is running on port: ${port}`);
});
我正在尝试学习 MERN 堆栈。我正在创建我的第一个非常简单的网站。现在,我创建了一条路线,我在其中创建了一个用户,使用传递给 throw 主体的数据。这是服务器的代码:
const express = require('express');
const cors = require('cors');
const mongoose = require('mongoose');
require('dotenv').config();
const app = express();
const port = process.env.PORT || 5000;
app.use(cors);
app.use(express.json());
const uri = process.env.ATLAS_URI;
mongoose.connect(uri, { useNewUrlParser:true });
const connection = mongoose.connection;
connection.once('open', () =>{
console.log("MongoDB database connection established succesfully")
})
const usersRouter = require('./routes/users');
app.use('/users', usersRouter);
app.listen(port, () => {
console.log(`Server is running on port: ${port}`);
});
现在,这是用户路由器文件的代码,我将代码放入:
const router = require('express').Router();//setting it as a express router
let User = require('../models/user.model');//requise the model created before
router.route('/').get((req, res) => {
User.find()//mongoose method, returns a promise
.then(users => res.json(users))//return the list of user
.catch(err => res.status(400).json('Error: ' + err));
});
router.route('/add').post((req, res) => {
const username = req.body.username;
const newUser = new User({username});
newUser.save()
.then(() => res.json('User added!'))
.catch(err => res.status(400).json('Error: ' + err));
});
module.exports = router;
最后,这里是模型用户模式:
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
//create the schema for the user
//like the model in Flask
const userSchema = new Schema({
username: {
type: String,
required: true,
unique: true,
trim: true,
minlength: 3
},
},{
timestamps:true,
});
const User = mongoose.model('User', userSchema); //create the model, via the schema
module.exports = User;
现在,为了测试它是否正确,在实现其他代码和前端之前,我想测试一下。首先我想添加一个新用户,看看 API 是否正常工作。我正在使用邮递员。我在 URL 上发送了请求:http://127.0.0.1:5000/users/add
,正文中包含以下 json:{"username": "name"}
。然后我发送,但 Postman 继续说它正在发送请求,并且持续了几分钟。我不明白问题是否出在承诺上,太低了,是不是我在代码或测试配置中写错了什么,是 Mongo 数据库有问题,还是其他任何问题。你能帮我吗?谢谢
在您的数据库连接中,您没有等待 promise
成为 resolved
require('dotenv').config();
const express = require('express');
const cors = require('cors');
const mongoose = require('mongoose');
const app = express();
app.use(cors());
app.use(express.json());
const port = process.env.PORT || 5000;
const connectDB = async () => {
try {
const conn = await mongoose.connect(process.env.ATLAS_URI, {
useUnifiedTopology: true,
useNewUrlParser: true,
});
console.log(`MongoDB Connected: ${conn.connection.host}`);
} catch (err) {
console.error(`Error: ${err.message}`);
process.exit(1);
}
};
connectDB()
const usersRouter = require('./routes/users');
app.use('/users', usersRouter);
app.listen(port, () => {
console.log(`Server is running on port: ${port}`);
});