所以我的所有应用程序都可以使用猫鼬正常运行,突然它们都停止了。我无法连接到我的数据库。但是我使用猫鼬数据库部署的应用程序工作正常,但是我无法使用本地计算机访问任何数据库。这是我编写的测试服务器。有人可以帮助我发生什么事。
const express = require('express');
const mongoose = require('mongoose');
const bodyParser = require('body-parser')
const app = express();
app.use(express.json())
const db = require('./keys').mongoURI;
mongoose.connect(db, { useNewUrlParser: true, useUnifiedTopology: true })
.then(() => console.log('connected'))
.catch(err => console.log(err))
const port = process.env.PORT || 5000;
app.listen(port, () => console.log('server running'))
module.exports = {
mongoURI: 'mongodb+srv://ertemishakk:<password>@cluster0-xi4zx.mongodb.net/test?retryWrites=true&w=majority'
}
端子: 服务器正在运行 MongoTimeoutError:服务器选择在30000毫秒后超时 在超时时._onTimeout(/Users/ishakertem/Desktop/test/node_modules/mongodb/lib/core/sdam/server_selection.js:308:9) 在listOnTimeout(internal / timers.js:536:17) 在processTimers(internal / timers.js:480:7){ 名称:“ MongoTimeoutError”, }
答案 0 :(得分:0)
您应该检查
中的bindIp:[public_ip]
选项
mongod.conf
文件。 应该指出运行MongoDB的系统的公共IP。 您只能使用0.0.0.0进行调试,因为它暴露为一个。
[如果对您有帮助,请投票回答此问题]
答案 1 :(得分:0)
您可以遵循此代码,希望能解决您的问题
const express = require('express');
const mongoose = require('mongoose');
const bodyParser = require('body-parser')
const app = express();
app.use(express.json())
//Remove <password> and provide DB password
/**
* Example: mongodb + srv: //ertemishakk:123@cluster0-xi4zx.mongodb.net/test?retryWrites=true&w=majorit
*/
mongoose.connect('mongodb+srv://ertemishakk:<password>@cluster0-xi4zx.mongodb.net/test?retryWrites=true&w=majorit', {
useNewUrlParser: true,
useUnifiedTopology: true
})
.then(() => console.log('connected'))
.catch(err => console.log(err))
const port = process.env.PORT || 5000;
app.listen(port, () => console.log('server running'))