mongodb { MongoTimeoutError:服务器选择在30000毫秒后超时

vi4fp9gy  于 2023-03-29  发布在  Go
关注(0)|答案(3)|浏览(388)

我正在Elementary OS上制作一个库节点js应用程序。我的server.js:

if (process.env.NODE_ENV !== 'production') {
    require('dotenv').config();
}

........

const mongoose = require('mongoose')
mongoose.connect(process.env.DATABASE_URL, {
     useCreateIndex: true,
        useNewUrlParser: true,
        useUnifiedTopology: true, // commented out currently
    })
const db = mongoose.connection
db.on('error', error => console.error(error))
db.once('open', () => console.log('Connected to Mongoose'))

app.use('/', indexRouter)
app.use('/authors', authorRouter)
app.use('/books', bookRouter)

app.listen(process.env.PORT || 3000)

每次运行npm run devStart(我在package.json中有:“devStart”:“nodemon server.js”)我得到了这个“

{ MongoTimeoutError: Server selection timed out after 30000 ms
    at Timeout.setTimeout [as _onTimeout] (/media/dan/Alte date/aplicatii nodejs/nodejs_mongo_cc/node_modules/mongodb/lib/core/sdam/server_selection.js:308:9)
    at ontimeout (timers.js:482:11)
    at tryOnTimeout (timers.js:317:5)
    at Timer.listOnTimeout (timers.js:277:5)
  name: 'MongoTimeoutError',
  reason: 
   { Error: connect ECONNREFUSED 127.0.0.1:27017
    at Object._errnoException (util.js:1022:11)
    at _exceptionWithHostPort (util.js:1044:20)
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1198:14)
     name: 'MongoNetworkError',
     [Symbol(mongoErrorContextSymbol)]: {} },
  [Symbol(mongoErrorContextSymbol)]: {} }
(node:6287) UnhandledPromiseRejectionWarning: MongoTimeoutError: Server selection timed out after 30000 ms
    at Timeout.setTimeout [as _onTimeout] (/media/dan/Alte date/aplicatii nodejs/nodejs_mongo_cc/node_modules/mongodb/lib/core/sdam/server_selection.js:308:9)
    at ontimeout (timers.js:482:11)
    at tryOnTimeout (timers.js:317:5)
    at Timer.listOnTimeout (timers.js:277:5)
(node:6287) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:6287) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.


我已经安装了 Mongoose 。有什么问题吗?

wrrgggsh

wrrgggsh1#

如果MongoDB服务器未运行或mongoDB URL不正确,则会发生此错误。您的mongoDB是本地安装的还是云上安装的?还请使用ROBO 3 T或指南针检查您的mongo连接。-谢谢

idfiyjo8

idfiyjo82#

首先检查MongoDB是否正在运行?其次,如果不在本地主机上,请在mongod.conf文件的bindIp选项中添加公网IP,然后重新启动mongoDB服务器。
bindIp:[public_ip]
请确保您输入了正确的mongoDB URL。

wyyhbhjk

wyyhbhjk3#

我遇到过这个问题,我的MongoDB是本地安装的,代码也是本地的,你可以在MongoDB URL中将localhost改为127.0.0.1

相关问题