import express from 'express'
const app = express();
const port = process.env.PORT || 8000;
import mongoose from 'mongoose';
mongoose.connect("mongodb://localhost:27017/schooldb").then(() => {
console.log("connection successfully ");
})
app.get('/', (req, res) => {
res.send('Hello user')
})
app.listen(port, () => {
console.log(`listening at port http://localhost:${port}`);
})
Hii i am new to learn express , i am trying to connect my mongodb to express js, i am not able to understand this error
D:LearnLearn Express new_mongoosenode_modulesmongooselibconnection.js:792
err = new ServerSelectionError();
^
MongooseServerSelectionError: connect ECONNREFUSED ::1:27017
at _handleConnectionErrors (D:LearnLearn Expressnew_mongoosenode_modulesmongooselibconnection.js:792:11)
at NativeConnection.openUri (D:LearnLearn Expressnew_mongoosenode_modulesmongooselibconnection.js:767:11)
at runNextTicks (node:internal/process/task_queues:60:5)
at listOnTimeout (node:internal/timers:533:9)
at process.processTimers (node:internal/timers:507:7) {
reason: TopologyDescription {
type: ‘Unknown’,
servers: Map(1) {
‘localhost:27017’ => ServerDescription {
address: ‘localhost:27017’,
type: ‘Unknown’,
hosts: [],
passives: [],
arbiters: [],
tags: {},
minWireVersion: 0,
maxWireVersion: 0,
roundTripTime: -1,
lastUpdateTime: 656213806,
lastWriteDate: 0,
error: MongoNetworkError: connect ECONNREFUSED ::1:27017
at connectionFailureError (D:LearnLearn Expressnew_mongoosenode_modulesmongodblibcmapconnect.js:370:20)
at Socket. (D:LearnLearn Expressnew_mongoosenode_modulesmongodblibcmapconnect.js:293:22)
at Object.onceWrapper (node:events:628:26)
at Socket.emit (node:events:513:28)
at emitErrorNT (node:internal/streams/destroy:151:8)
at emitErrorCloseNT (node:internal/streams/destroy:116:3)
at process.processTicksAndRejections (node:internal/process/task_queues:82:21) {
cause: Error: connect ECONNREFUSED ::1:27017
at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1487:16) {
errno: -4078,
code: ‘ECONNREFUSED’,
syscall: ‘connect’,
address: ‘::1’,
port: 27017
},
[Symbol(errorLabels)]: Set(1) { ‘ResetPool’ }
},
topologyVersion: null,
setName: null,
setVersion: null,
electionId: null,
logicalSessionTimeoutMinutes: null,
primary: null,
me: null,
‘$clusterTime’: null
}
},
stale: false,
compatible: true,
heartbeatFrequencyMS: 10000,
localThresholdMS: 15,
setName: null,
maxElectionId: null,
maxSetVersion: null,
commonWireVersion: 0,
logicalSessionTimeoutMinutes: null
},
code: undefined
}
i was expecting connection successfull message at console,please help me
2
Answers
here mongodb trying to connect to the current system but it fails to connect because the database is not running on the current system to fix this use
0.0.0.0
instead of localhost.In node.js v18, localhost uses ipv6 address (
::1
), and by default mongodb localhost doesn’t have ipv6 enabled. That’s why you’re facing this issue.If you want to use ipv4 localhost address (
127.0.0.1
),localhost
with127.0.0.1
.family: 4
parameter. This tells the node.js localhost to use ipv4 address.OR
If you want to use the ipv6 address, then just start
mongod
with--ipv6
as argument. This enables mongodb ipv6 address.