MongoDB connected... Development server live on http://localhost:3000 node:internal/errors:465 ErrorCaptureStackTrace(err); ^ Error: querySrv ECONNREFUSED _mongodb._tcp.auctiondbcluster.s6rzg.mongodb.net at QueryReqWrap.onresolve [as oncomplete] (node:dns:213:19) { errno: undefined, code: 'ECONNREFUSED', syscall: 'querySrv', hostname: '_mongodb._tcp.auctiondbcluster.s6rzg.mongodb.net' }Todo funciona sin problemas cuando estoy conectado a mi wifi, pero cuando estoy desconectado e iniciando el servidor, aparece este error. Y, por cierto, no, no estoy tratando de conectarme al clúster en línea de MongoDB, estoy tratando de conectarme al host local (mongodb://localhost:27017/auctionDB).
Aquí la función que estoy usando en app.js
const runServer = async () =>{ if(process.env.NODE_ENV !== "production"){ await connectDb(process.env.MONGODB_LOCAL_CONNECTION); app.listen(PORT, ()=>{ console.log(`Development server live on http://localhost:${PORT}`); }) } else { await connectDb(process.env.MONGODB_CONNECTION_STRING); app.listen(PORT, ()=>{ console.log(`Production server live on port ${PORT}`); }) } } runServer(); En mi archivo .env , NODE_ENV está configurado en desarrollo. Aquí está la función connectDb.js que estoy usando para conectarme a la base de datos
const mongoose = require("mongoose"); /** * @description: Connect to the database by providing the connection string. * @param {String} uri | MongoDB URI * @default: mongodb://localhost:27017/auctionDB * * @returns {undefined} */ const connectDb = (url = process.env.MONGODB_LOCAL_CONNECTION) => { try { const con = mongoose.connect(url, { useNewUrlParser: true, useUnifiedTopology: true }); if(con) console.log("MongoDB connected...") } catch(e){ console.log(`Error: ${e}`); } }; module.exports = connectDb;Aquí está todo el proyecto en github
Debe await la llamada mongoose.connect , no toda la función:
const connectDb = async (url = process.env.MONGODB_LOCAL_CONNECTION) => { try { const con = await mongoose.connect(url, { useNewUrlParser: true, useUnifiedTopology: true }); if(con) console.log("MongoDB connected...") } catch(e){ console.log(`Error: ${e}`); } }; module.exports = connectDb; const runServer = () =>{ if(process.env.NODE_ENV !== "production"){ connectDb(process.env.MONGODB_LOCAL_CONNECTION); app.listen(PORT, ()=>{ console.log(`Development server live on http://localhost:${PORT}`); }) } else { connectDb(process.env.MONGODB_CONNECTION_STRING); app.listen(PORT, ()=>{ console.log(`Production server live on port ${PORT}`); }) } } runServer();