【发布时间】:2021-11-21 13:48:20
【问题描述】:
我正在尝试学习 MERN 堆栈。我正在创建我的第一个非常简单的网站。现在,我创建了一条路线,在其中创建用户,使用传递的数据抛出主体。这是服务器的代码:
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"}。然后我发送,但邮递员继续告诉我它正在发送请求,并且持续了几分钟。我无法理解问题是否在于承诺,是否太低,是否我在代码或测试配置中写错了某些内容,Mongo 数据库是否存在问题,或其他任何问题。你能帮我吗?谢谢
【问题讨论】:
-
是
app.use(cors())不是app.use(cors) -
始终使用
morgan之类的记录器或其他库来记录请求。 -
似乎您没有从服务器发回任何响应!
标签: javascript node.js mongodb mongoose mern