来自 api 端点缓冲的 MongoDB post 在 10000ms 后超时

编程入门 行业动态 更新时间:2024-10-03 00:23:42

来自 api 端点缓冲的 <a href=https://www.elefans.com/category/jswz/34/1771382.html style=MongoDB post 在 10000ms 后超时"/>

来自 api 端点缓冲的 MongoDB post 在 10000ms 后超时

我正在使用 MongoDB 创建一个简单的用户创建,并带有要发布的端点。

在 Postman 中提交 json 数据的帖子会在终端中呈现 500 内部服务器错误和

MongooseError: Operation users.findOne() buffering timed out after 10000ms

index.js

const express = require('express')
const mongoose = require('mongoose')
const cors = require('cors')
const usersRouter = require('./routes/users')
require('dotenv').config()

const app = express()

app.use(express.json())
app.use(cors({
  origin: 'http://localhost:3000',
  methods: ['GET', 'POST', 'PUT', 'DELETE'],
  allowedHeaders: ['Content-Type', 'Authorization']
}))

// Connect to DB
mongoose.connect(process.env.MONGODB_URI, { useNewUrlParser: true, useUnifiedTopology: true });
const connection = mongoose.connection
connection.once('open', () => {
  console.log("MongoDB database connection established successfully")
})

// Use the user router middleware
app.use('/users', usersRouter);

// Start the server
const port = process.env.PORT || 5000
app.listen(port, () => {
  console.log(`Server is running on port: ${port}`)
})

app.js

const express = require('express');
const app = express();

app.use(express.json());
app.use(express.urlencoded({ extended: true }));


// Require the users route
const usersRouter = require('./routes/users');

// Use the users router as middleware with a base URL of /api/users
app.use('/api/users', usersRouter);

// Start the server
const PORT = process.env.PORT || 3000;
app.listen(PORT, () => console.log(`Server running on port ${PORT}`));

routes/users.js

const express = require('express');
const router = express.Router();
const userController = require('../controllers/userController');

router.post('/register', userController.registerUser);

module.exports = router;

控制器/userController.js

const User = require('../models/User');

// Create user
const registerUser = async (req, res) => {
    try {
        const { name, email, password } = req.body;
        // Check if user with the provided email already exists
        const existingUser = await User.findOne({ email });
        if (existingUser) {
            return res.status(400).json({ message: 'User with this email already exists' });
        }
        // Create new user document
        const user = new User({ name, email, password });
        await user.save();
        res.status(201).json({ message: 'User registered successfully', user });
    } catch (error) {
        console.error(error);
        res.status(500).json({ message: 'Server error' });
    }
}

module.exports = {
    registerUser
}

模型/User.js

const mongoose = require('mongoose');

const userSchema = new mongoose.Schema({
  name: {
    type: String
  },
  email: {
    type: String
  },
  password: {
    type: String
  }
});

const User = mongoose.model('User', userSchema);
module.exports = User;

然后在 Postman 中,我只是向 http://localhost:3000/api/users/register 发送一个简单的帖子

{
    "name": "John New",
    "email": "[email protected]",
    "password": "password123"
}

任何建议都会有所帮助,我觉得我在兜圈子,错过了一些明显的东西。谢谢。

回答如下:

这是由于以下教程的疏忽而修复的。当这完全没有必要时,我愚蠢地运行了 index.js 和 app.js。在连接到 Mongo 时只需要运行 index.js,然后我的端点需要在邮递员中更改。

然后成功!

更多推荐

来自 api 端点缓冲的 MongoDB post 在 10000ms 后超时

本文发布于:2024-05-30 13:26:13,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1770542.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:MongoDB   api   post   ms

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!