Node.js 向Localhost发送请求,但不在NodeJS中发送响应

Node.js 向Localhost发送请求,但不在NodeJS中发送响应,node.js,mongodb,express,post,postman,Node.js,Mongodb,Express,Post,Postman,所以最近我试着学习NodeJS,并关注一个关于它的博客。它帮助我建立了一个处理运动跟踪的小型节点服务器。 我试图向本地服务器发送POST请求,但最终没有响应,而且,它被困在“发送响应”中 server.js代码: const express = require('express'); // Web framework const cors = require('cors'); const mongoose = require('mongoose'); require('dotenv').conf

所以最近我试着学习NodeJS,并关注一个关于它的博客。它帮助我建立了一个处理运动跟踪的小型节点服务器。 我试图向本地服务器发送POST请求,但最终没有响应,而且,它被困在“发送响应”中

server.js代码:

const express = require('express'); // Web framework
const cors = require('cors');
const mongoose = require('mongoose');
require('dotenv').config(); // For .env file

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, useCreateIndex: true });
const connection = mongoose.connection;
connection.once('open', () => {
  console.log("MongoDB database connection established successfully");
})

const exercisesRouter = require('./routes/exercises');
const usersRouter = require('./routes/users');
app.use('/exercises',exercisesRouter);
app.use('/users',usersRouter);

app.listen(port, () => {
    console.log(`Server is running on Port: ${port}`);
});

routes目录中的users.js代码:

const router = require('express').Router();
let User = require('../models/user.model');
router.route('/').get((req,res) => {
    User.find() // 
        .then(users => res.json(users))
        .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;
用户模型:User.Model.js

const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const userSchema = new Schema({
        username: {
            type: String,
            required: true,
            unique: true,
            trim: true,
            minlength: 3
        },
    },{
        timestamps: true,
});
const User = mongoose.model('User',userSchema);
module.exports = User;
我正在发送的API请求:

curl --location --request POST 'http://localhost:5000/users/add' \
--header 'Content: application/json' \
--header 'Content-Type: application/json' \
--data-raw '{
    "username":"anything"
}'
我不确定出了什么问题,但我没有从服务器上得到响应。我也用了邮递员,但没有回应
参考博客:
附言:我是一个新手,在NodeJS从今以后的怪异困惑中。谢谢你的时间

Github链接:-


编辑:还检查了Postman控制台日志,发现它给出了错误“套接字挂起”

检查是否存在超时/套接字挂起的一件事是检查MongoDB连接是否成功

mongoose
  .connect(uri, { useNewUrlParser: true, useCreateIndex: true })
  .then(() => {
    console.log("connection sucess");
  })
  .catch((e) => {
    console.log(e);
    console.log("connection failed");
  });
添加CORS规则

app.use(cors({ origin: "*", optionsSuccessStatus: 200 }));

通过邮递员/失眠症尝试相同的请求。

检查是否存在超时/套接字挂起的一件事是检查MongoDB连接是否成功

mongoose
  .connect(uri, { useNewUrlParser: true, useCreateIndex: true })
  .then(() => {
    console.log("connection sucess");
  })
  .catch((e) => {
    console.log(e);
    console.log("connection failed");
  });
添加CORS规则

app.use(cors({ origin: "*", optionsSuccessStatus: 200 }));

通过邮递员/失眠症尝试相同的请求。

您可以在git或任何其他格式上共享代码吗?放置一些控制台日志并进行调试。你会知道它在哪里卡住了………@Vickrant我确实在/users/add路径的开头放了一个控制台日志,但它没有打印出任何内容。所以我的猜测是,请求甚至没有到达服务器。@adeel github链接:你能在git上或以任何其他格式共享代码吗?放一些控制台日志并调试。你会知道它在哪里卡住了………@Vickrant我确实在/users/add路径的开头放了一个控制台日志,但它没有打印出任何内容。因此,我的猜测是,请求甚至没有到达服务器。@adeel github链接:MongoDB连接成功,如控制台中所示。您可以尝试使用connection.on而不是connection.onceI通过connection与Postman一起发送请求。on:(屏幕截图)另外,我已经更新了问题中的github链接,您是否需要它。谢谢我在GitHub中尝试了这段代码,我可以看到DB连接失败。我发现了两个问题,一个是CORS规则和DB连接。我尝试使用本地MongoDB,使用更新后的CORS规则,我得到一个响应“User added!”。MongoDB连接成功,如控制台中所示。您可以尝试使用connection.on而不是connection.onceI通过connection.on:(屏幕截图)同样,我已经更新了问题中的github链接,您是否需要它。谢谢我在GitHub中尝试了这段代码,我可以看到DB连接失败。我发现了两个问题,一个是CORS规则和DB连接。我尝试使用本地MongoDB,使用更新后的CORS规则,我得到的响应是“用户已添加!”。