Sigo recibiendo ese error sin tener idea de por qué. ¡Estoy tratando de conectarme a mi base de datos mongodb pero sigue diciéndome que el "host" no está definido!
Aquí están mis archivos:
Índice.js
const express = require("express"); const dotenv = require("dotenv"); const connectDB = require("./config/db"); //Load config dotenv.config({ path: "./config/config.env" }); console.log("hello"); connectDB(); const app = express(); const PORT = process.env.PORT || 3000; app.listen( PORT, console.log(`server running in ${process.env.NODE_ENV} mode on port ${PORT}`) );
El error está en db.js línea 11
const mongoose = require("mongoose"); const connectDB = async () => { try { const conn = mongoose.connect(process.env.MONGO_URI, { useNewUrlParser: true, useUnifiedTopology: true, // useFindAndModify: false, }); console.log("hey!"); console.log(`MongoDB connecteed: ${conn.connection.host}`); } catch (err) { console.error(err); process.exit(1); } }; module.exports = connectDB;
Por favor, avíseme si me falta algo.
¡Gracias!
Debe await
mongoose.connect
que devuelve una Promise
:
const mongoose = require("mongoose"); const connectDB = async () => { try { const conn = await mongoose.connect(process.env.MONGO_URI, { useNewUrlParser: true, useUnifiedTopology: true, // useFindAndModify: false, }); console.log(`MongoDB connecteed: ${conn.connection.host}`); } catch (err) { console.error(err); process.exit(1); } }; module.exports = connectDB;
Es probable que el error se deba a que conn.connection
es nulo y está intentando acceder al host
de propiedad en él.
Intente iniciar sesión conn
en lugar de conn.connection.host
.