Cómo conectar una aplicación de nodo a MongoDB Atlas

MongoDB es una opción popular de base de datos NoSQL para aplicaciones Node. Hay una razón por la que los acrónimos MERN stack, MEAN stack e incluso MEVN stack existen para describir una aplicación creada en MongoDB, Express, un marco de JavaScript (ya sea React, Angular o Vue) y Node.

Si está aprendiendo a trabajar con MongoDB y Node, configurar una base de datos en su propia computadora puede ser un dolor de cabeza. Afortunadamente, MongoDB ofrece una plataforma de base de datos basada en la nube, MongoDB Atlas.

Recientemente construí algunos proyectos con Node y MongoDB Atlas y sentí que podría ser útil escribir una guía rápida sobre cómo hacer que los dos se comuniquen entre sí.

Paso 1:configure su cuenta y clúster de MongoDB Atlas

Lo primero es lo primero, vaya al sitio web de MongoDB Atlas y cree una cuenta gratuita. Puede elegir el nombre que desee para su organización y proyecto. Elija JavaScript como su idioma preferido.

A continuación, elija un clúster compartido gratuito. Esto será suficiente para demostraciones y pequeños proyectos personales.

Cuando se le invite a crear un clúster de inicio, puede dejar el proveedor de la nube y la región como valores predeterminados (a menos que tenga fuertes sentimientos al respecto) y hacer clic en Crear clúster. .

Ahora será llevado a su panel de administración. Haga clic en Crear un nuevo clúster . Esto puede tardar un par de minutos.

Una vez que su clúster esté listo, haga clic en Conectar botón en la caja de arena.

Permitir el acceso desde todas las direcciones IP. Esta sería una idea terrible en producción, pero es solo una demostración con fines de aprendizaje.

A continuación, cree un nuevo usuario para la base de datos y elija una contraseña. Guárdelos en un lugar seguro, como su administrador de contraseñas.

Ahora haz clic en Elegir un método de conexión .

Seleccione Conectar su aplicación

En Agregue su cadena de conexión en el código de su aplicación verás una URI con el formato mongodb+srv://<username>:<password>@<cluster-name>.mongodb.net/<db-name>?retryWrites=true&w=majority . Los campos de nombre de usuario, nombre del clúster y nombre de la base de datos se completarán automáticamente.

Copie este URI en su portapapeles. Lo necesitarás en un minuto.

Paso 2:cree una aplicación de nodo si aún no tiene una

Si no tiene una aplicación Node a mano, puede descargar el código de inicio para una aplicación Express muy básica desde este repositorio.

Ejecute npm install para instalar Express, la única dependencia.

Tu app.js El archivo debería verse así.

// app.js
const express = require("express");
const port = 3000;

const app = express();

app.get("/", (req, res) => {
  res.send("Hello World!");
});

app.listen(port, () => {
  console.log(`Your app is listening on port ${port}`);
});

En su línea de comando, ejecute node app.js y debería ver el mensaje de confirmación de que su aplicación está escuchando en un puerto en particular.

Paso 3:almacenar variables ambientales

¿Recuerda su URI de MongoDB Atlas? No desea simplemente pegar eso en su código donde podría comprometerse con Git y potencialmente exponerse públicamente.

En su lugar, lo guardaremos como una variable ambiental.

Instale el paquete dotenv con npm install dotenv .

Crea un .env archivo en la raíz de su proyecto, pegue su URI y asígnelo a un DB_URI variable. Asegúrese de que su versión incluya su contraseña, así como su nombre de usuario, el nombre del clúster y el nombre de la base de datos.

// .env
DB_URI=mongodb+srv://<username>:<password>@<cluster-name>.mongodb.net/<db-name>?retryWrites=true&w=majority

Paso 4:configure su conexión a la base de datos

Para mantener las cosas organizadas, mantengo la configuración de mi base de datos en su propio archivo.

En la raíz de su proyecto, cree un db.js expediente. Esto contendrá toda la configuración para conectarse a su base de datos.

Vamos a usar Mongoose para manejar la conexión a nuestra base de datos.

Instale Mongoose con npm install mongoose e importarlo en db.js .

Importa el URI de tu base de datos como db de process.env.DB_URI .

Crea un connectDB función. Asegúrate de marcarlo como async ya que llevará cierto tiempo conectarse a su base de datos.

Dentro de connectDB , crea un try-catch bloque para manejar cualquier error que ocurra.

En el try bloquear, esperar mongoose.connect() . Pásalo el db variable y un objeto de configuración. En el objeto de configuración, establezca useNewUrlParser y useUnifiedTopology a true . Esto evitará que Mongoose le dé advertencias. Mongoose explica las advertencias en su documentación.

También es un buen hábito console.log un mensaje de éxito para decirle que se ha conectado a su base de datos. Una vez pasé una hora tratando de depurar la conexión de una base de datos simplemente porque no me decía a mí mismo que estaba conectado.

En el catch bloque, console.error cualquier error que reciba y use process.exit(1) para terminar el proceso si ocurre un error.

Finalmente, exporte el connectDB función.

Tu db.js El archivo ahora debería verse así.

// db.js
const mongoose = require("mongoose");
const db = process.env.DB_URI;

async function connectDB() {
  try {
    await mongoose.connect(db, {
      useNewUrlParser: true,
      useUnifiedTopology: true,
    });
    console.log("MongoDB connected");
  } catch (error) {
    console.error(error.message);
    process.exit(1);
  }
}

module.exports = connectDB;

Paso 5:hora de conectarse a su base de datos

En tu app.js archivo, requiere dotenv y llama al config método en él.

Importar el connectDB función y llámela.

// app.js
require("dotenv").config();
const express = require("express");
const connectDB = require("./db");
const port = 3000;

// Connect to database
connectDB();

const app = express();

app.get("/", (req, res) => {
  res.send("Hello World!");
});

app.listen(port, () => {
  console.log(`Your app is listening on port ${port}`);
});

Felicitaciones, su aplicación Node ahora está conectada a su clúster MongoDB Atlas. Si ejecuta node app.js , verá dos mensajes impresos en su consola:que su aplicación se está ejecutando y que se ha conectado a su base de datos. Desde aquí puede comenzar a escribir esquemas y realizar operaciones CRUD con sus datos.

Si tuvo algún problema, el código de esta aplicación de demostración se encuentra en este repositorio.

Más recursos

  • Documentación de MongoDB Atlas
  • MongoDB, obtenga su clúster de MongoDB Atlas gratuito:YouTube
  • MongoDB, tutorial de MongoDB Atlas:cómo empezar - freeCodeCamp