i am new to the MERN stack. I was learning about express-session with connect-mongo from a tutorial and i keep getting the following error:
**const timeoutError = new error_1.MongoServerSelectionError(Server selection timed out after ${options.serverSelectionTimeoutMS} ms, this.description);
^
MongoServerSelectionError: connect ECONNREFUSED ::1:27017
at EventTarget.<anonymous> (D:\udemy2\authentication\passportJS\node_modules\mongodb\lib\sdam\topology.js:276:34)
at [nodejs.internal.kHybridDispatch] (node:internal/event_target:741:20)
at EventTarget.dispatchEvent (node:internal/event_target:683:26)
at abortSignal (node:internal/abort_controller:368:10)
at TimeoutController.abort (node:internal/abort_controller:402:5)
at Timeout.<anonymous> (D:\udemy2\authentication\passportJS\node_modules\mongodb\lib\utils.js:1010:92)
at listOnTimeout (node:internal/timers:569:17)
at process.processTimers (node:internal/timers:512: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: 734535,
lastWriteDate: 0,
error: MongoNetworkError: connect ECONNREFUSED ::1:27017
at connectionFailureError (D:\udemy2\authentication\passportJS\node_modules\mongodb\lib\cmap\connect.js:379:20)
at Socket.<anonymous> (D:\udemy2\authentication\passportJS\node_modules\mongodb\lib\cmap\connect.js:285:22)
at Object.onceWrapper (node:events:629:26)
at Socket.emit (node:events:514: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) {
[Symbol(errorLabels)]: Set(1) { 'ResetPool' },
[cause]: Error: connect ECONNREFUSED ::1:27017
at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1495:16) {
errno: -4078,
code: 'ECONNREFUSED',
syscall: 'connect',
address: '::1',
port: 27017
}
},
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,
[Symbol(errorLabels)]: Set(0) {},
[cause]: MongoNetworkError: connect ECONNREFUSED ::1:27017
at connectionFailureError (D:\udemy2\authentication\passportJS\node_modules\mongodb\lib\cmap\connect.js:379:20)
at Socket.<anonymous> (D:\udemy2\authentication\passportJS\node_modules\mongodb\lib\cmap\connect.js:285:22)
at Object.onceWrapper (node:events:629:26)
at Socket.emit (node:events:514: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) {
[Symbol(errorLabels)]: Set(1) { 'ResetPool' },
[cause]: Error: connect ECONNREFUSED ::1:27017
at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1495:16) {
errno: -4078,
code: 'ECONNREFUSED',
syscall: 'connect',
address: '::1',
port: 27017
}
}
}.**
I did some research and it said that it might be because my server isnt running but when i open "Services" it says its up. I tried restarting it multiple times but it didnt help. Here is my code:
const express = require("express");
const session = require("express-session");
const mongoose = require("mongoose")
const MongoStore = require("connect-mongo");
const app = express();
app.use(express.urlencoded({extended: true}))
const connection = mongoose.createConnection("mongodb://127.0.0.1/testDB", {useNewUrlParser: true})
app.use(session({
secret: 'keyboard cat',
saveUninitialized: false, // don't create session until something stored
resave: false, //don't save session if unmodified
store: MongoStore.create({
mongoUrl: 'mongodb://localhost/test-app',
touchAfter: 24 * 3600 // time period in seconds
})
}));
app.get("/", (req,res)=>{
res.send("...")
})
app.listen(3000, ()=>{
console.log("server is running")
})
Thanks in advance
If you are sure mongo server is running then Your app is not able to connect to mongo server, in that case check your Mongo conf file.
your bindip value should look like