Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
2
respuestas

[Duda] Me podrian ayudar con la conexion de la base de datos

estoy cursando el aula de Node.js : creando API rest con Express y mongo y a la hora de realizar la conexion con mongo se realiza la conexion de manera correcta pero al consultar el libro que cree anteriormente no me muestra el arreglo en post man sino un arreglo vacio como si no existiera algun dato, me podrian ayudar a encontrar el error: les adjunto parte del codigo donde se realiza la conexion

import mongoose from "mongoose;

async function conectDtaBase () {
    mongoose.connect(process.env.DB_CONNECTION_STRING);
    return mongoose.connection;
}

export default conectDtaBase;`
DB_CONNECTION_STRING = mongodb+srv://felipontamayo:lcO8aMx1seRIExyQ@cluster0.wyrkvfh.mongodb.net/Libreria?retryWrites=true&w=majority&appName=Cluster0

la base de datos la llame libreria: Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidadpero cuando consulto en postman los datos me muestra el arrglo vacio : Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

2 respuestas

¡Hola Andres, espero que estés bien!

Sugerencia: añadir más " en un import del mongoose.

import mongoose from "mongoose";

Entiendo que estás teniendo problemas con la conexión de la base de datos en tu API rest con Express y MongoDB. Parece que la conexión se realiza correctamente, pero al consultar el libro que has creado, no muestra los datos en Postman.

Después de revisar tu código, parece que el problema podría estar relacionado con el nombre de la base de datos en tu conexión. En el contexto proporcionado, se menciona que la base de datos se llama librería_alura, pero en tu código se está utilizando libreria, por lo que es importante asegurarse de que la cadena de conexión incluya el nombre correcto de la base de datos.

Además, es importante verificar que la conexión a la base de datos se esté realizando de forma asíncrona y que esté esperando a que la conexión se complete antes de realizar consultas.

También es recomendable utilizar el paquete dotenv para manejar las variables de entorno de forma segura, especialmente al trabajar con claves de conexión a la base de datos.

Te recomendaría revisar estos puntos y asegurarte de que la cadena de conexión incluya el nombre correcto de la base de datos. Además, verifica que la consulta al libro se esté realizando después de que la conexión se haya establecido correctamente.

Espero que estos consejos te ayuden a resolver el problema. ¡Buena suerte y sigue adelante con tu aprendizaje en Node.js!

Espero haber ayudado y buenos estudios!

¡Hola Andres, espero que estés bien!

Además de las sugerencia de Brenda, sí aún así la base de datos no mostrar en postman te dejo estos otras pasos que te puedan ayudar.

Comprobar el modelo y el esquema de Mongoose: Asegúrate de que tu modelo de Mongoose esté definido correctamente y que esté apuntando a la colección correcta.

Verificar la consulta: Asegúrate de que la consulta que estás utilizando para obtener los datos sea correcta y que esté apuntando a la colección y documentos correctos.

También te dejo una versión revisada de tu código con algunas mejoras para la depuración:

import mongoose from 'mongoose';

async function connectDataBase() {
    try {
        await mongoose.connect(process.env.DB_CONNECTION_STRING, {
            useNewUrlParser: true,
            useUnifiedTopology: true,
        });
        console.log('Conexión a la base de datos exitosa');
    } catch (error) {
        console.error('Error al conectar a la base de datos', error);
    }
}

export default connectDataBase;

Definición del modelo Asegúrate de tener el modelo de Mongoose definido correctamente, por ejemplo:

import mongoose from 'mongoose';

const libroSchema = new mongoose.Schema({
    titulo: String,
    paginas: Number,
    autor: Object,
});

const Libro = mongoose.model('Libro', libroSchema);

export default Libro;

Uso del modelo en tu API Cuando consultas la base de datos, asegúrate de usar el modelo correctamente:

import express from 'express';
import connectDataBase from './database';
import Libro from './models/libro';

const app = express();
const port = process.env.PORT || 3000;

app.get('/libros', async (req, res) => {
    try {
        await connectDataBase();
        const libros = await Libro.find();
        res.json(libros);
    } catch (error) {
        console.error('Error al obtener los libros', error);
        res.status(500).json({ message: 'Error al obtener los libros' });
    }
});

app.listen(port, () => {
    console.log(`Servidor corriendo en el puerto ${port}`);
});

Variables de entorno Asegúrate de que tu archivo .env esté configurado correctamente con tu cadena de conexión:

DB_CONNECTION_STRING=mongodb+srv://felipontamayo:lcO8aMx1seRIExyQ@cluster0.wyrkvfh.mongodb.net/Libreria?retryWrites=true&w=majority&appName=Cluster0

Si sigues todos estos pasos y aún tienes problemas, puedes proporcionarme más detalles sobre cualquier error específico que aparezca en la consola de tu servidor o en la respuesta de Postman.

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios!