node.js无法使用猫鼬连接到mongodb

时间:2019-12-10 03:47:08

标签: node.js mongodb express mongoose mern

所以我的所有应用程序都可以使用猫鼬正常运行,突然它们都停止了。我无法连接到我的数据库。但是我使用猫鼬数据库部署的应用程序工作正常,但是我无法使用本地计算机访问任何数据库。这是我编写的测试服务器。有人可以帮助我发生什么事。

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”, }

2 个答案:

答案 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'))