我试图通过发出发布请求将数据保存到我的数据库 MongoDb 图集,但收到此错误“操作 mytables.insertOne()
缓冲在 10000 毫秒后超时”。我已经尝试了许多互联网上可用的解决方案,但没有一个对我有用(
Server.js
const express = require('express');
const app = express();
const mongoose = require('mongoose');
const dotenv = require('dotenv');
const routesUrls = require('./routes/routes');
const cors = require('cors');
dotenv.config();
mongoose.connect(process.env.DATABASE_ACCESS,{ useNewUrlParser: true, useUnifiedTopology: true, useCreateIndex: true},()=>console.log("Datbase Connected"));
app.use(express.json());
app.use(cors());
app.use('/app',routesUrls);
app.listen(3000,()=>{
console.log("server.js");
})
routes.js
const express = require('express');
const router = express.Router();
const signUpTemplateCopy = require('../models/SignUpModels');
router.post('/signup',(req,res)=>{
const signedUpUser = new signUpTemplateCopy({
username: req.body.username,
email: req.body.email,
password: req.body.password,
})
// res.send("Hello");
signedUpUser.save()
.then(data=>{
res.send("success");
})
.catch(error=>{
res.send(error.message);
})
})
module.exports = router
注册模型
const mongoose = require('mongoose');
const signUpTemplate = new mongoose.Schema({
username:{
type: String,
required: true,
},
email:{
type: String,
required:true,
},
password:{
type:String,
required:true,
},
date:{
type:Date,
default:Date.now,
}
})
module.exports = mongoose.model('mytable',signUpTemplate);
dot.env
DATABASE_ACCESS = "mongodb+srv://nikhil:tempPass@cluster0.lqfx7.mongodb.net/mytable?retryWrites=true&w=majority"
任何帮助将不胜感激
答案 0 :(得分:1)
https://mongoosejs.com/docs/connections.html#buffering
<块引用>Mongoose 让您可以立即开始使用您的模型,而无需等待 mongoose 与 MongoDB 建立连接。
试试
只有在连接数据库后才启动您的应用程序。
mongoose.connect(process.env.DATABASE_ACCESS,{ useNewUrlParser: true, useUnifiedTopology: true, useCreateIndex: true},(err) => {
console.log(err);
app.listen(3000,()=> {
console.log("server.js");
})
});