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 后超时
发布评论