es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Estoy intentando conectar monogoDB con node.js, pero la terminal muestra el error MongoAPIError: La URI debe incluir el nombre de host, el nombre de dominio y el dominio de nivel superior (tld).

Estoy intentando conectar MongoDB con node.js, pero la terminal muestra un error de MongoAPIError: URI debe incluir el nombre del host, el nombre de dominio y el tld.

  • Código Backend

He escrito el código de MongoDB en un archivo de base de datos y he agregado/requerido la ruta del archivo en el archivo backend.

const express = require("express");
const app = express();
const dotenv = require("dotenv");
const path = require('path');
const bcrypt = require('bcrypt');</p>

<p>dotenv.config({path: './config.env'})
require('./database-connection.js')</p>

<p>const port = 80
  • Código de base de datos de MongoDB

Nombre del archivo de conexión a la base de datos: database-connection.js


const mongoose = require("mongoose"); const db = mongodb+srv://kumbamshyam:Superman@123@cluster0.apij4.mongodb.net/ecommerce-website?retryWrites=true&w=majority mongoose.connect(db).then(()=>{ console.log('conexión exitosa'); }).catch((err)=>{ console.log("Error recibido= " + err) })
  • <----- Código de Error ----->

    Error recibido= MongoAPIError: URI debe incluir el nombre del host, el nombre de dominio y el tld

¿Alguna solución para este problema?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    El mensaje de error indica que hay un problema con la cadena URI proporcionada para establecer una conexión con la base de datos de MongoDB. Al parecer, la URI no incluye el nombre de host, el nombre de dominio y los detalles del dominio de nivel superior.

    Para resolver este problema, asegúrese de que la cadena URI tenga el formato correcto, que incluye el nombre de host, el nombre de dominio y los detalles del dominio de nivel superior. El formato debería ser:

    mongodb+srv://<username>:<password>@cluster0.apij4.mongodb.net/<dbname>?retryWrites=true&w=majority

    donde:
    <username> es su nombre de usuario de MongoDB Atlas
    <password> es su contraseña de MongoDB Atlas
    <dbname> es el nombre de su base de datos de MongoDB

    Puede modificar su archivo de conexión de la siguiente manera:

    const mongoose = require("mongoose");
    
    const username = "kumbamshyam"; // reemplace con su nombre de usuario de MongoDB Atlas
    const password = "Superman@123"; // reemplace con su contraseña de MongoDB Atlas
    const dbname = "ecommerce-website"; // reemplace con el nombre de su base de datos de MongoDB Atlas
    
    const uri = `mongodb+srv://${username}:${password}@cluster0.apij4.mongodb.net/${dbname}?retryWrites=true&w=majority`;
    
    mongoose.connect(uri)
      .then(() => { 
        console.log('conectado exitosamente');
      })
      .catch((err) => { 
        console.log("Error recibido= " + err);
      });
    

    Asegúrese de reemplazar username, password y dbname con sus propias credenciales de MongoDB Atlas en el código anterior.

Comments are closed.