No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Proyecto de API

16/27
Recursos

Aportes 20

Preguntas 4

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Momento donde uno se da cuenta que sabe poco con todo lo que existen en el entorno tecnologico, tambien que no se que estoy haciendo .

Comencé el curso por error ya que pensaba era testing en JS como front-end, seguramente fallo mio por no leer o no prestar atención. No entendia nada y me salieron un montón de errores, finalmente pude crear la BD y correr la ap en el local host, eso si tarde casi 2 días en darme cuenta que el código no es JS plain sino Express pero pude hacerlo, con lo cual bajo mi frustración. …Nicolas me parece un excelente profesor. Ya q llegué aqui terminaré el curso.

Si la consola te lanza un error como este:

ERROR: for mongo  Cannot start service mongo: driver failed programming external connectivity on endpoint api_mongo_1 Error starting userland proxy: listen tcp4 0.0.0.0:27017: bind: address already in use
ERROR: Encountered errors while bringing up the project
  • La solucion esta facil, solo debes ejecutar los siguientes comandos:
    (Si no tienes instalado netstat en Ubuntu):
sudo apt install net-tools   
  • Luego corres el siguiente comando:
sudo lsof -i -P -n | grep 27017
  • Y por ultimo corres el siguiente comando:
sudo kill <process ID> 

(El process Id es el numero a la par “process name” de lo que te devolvio el comando que comienza con lsof), mi caso era el 1242. Ejem:

mongod     1242         mongodb   11u  IPv4 

y listo! Luego solo corre el docker-compose up -d mongo y deberia funcionar

Si alguien tuvo mas tuvo problemas con la autenticación de la base de datos, solo cambien la URL en el .env y en MongoAtlas por mongodb://localhost:27017/demo Con esto queda corregido y funciona sin ningún problema

Si les sale este error:

TypeError: Cannot read properties of undefined (reading 'startsWith')

Muevan el archivo de las variables de entorno (.env) a la raíz de la carpeta api. Corran el programa nuevamente y debería funcionar.

A ver si entendí: clonamos el repo al entorno local, instalamos las dependencias especificadas en el package.json con ‘npm i’, levantamos un contenedor de docker-compose con la imagen de mongo:4.4 tal como dice en el archivo docker-compose.yml, en este archivo se especifican las credenciales root y root123 para posteriormente instalar MongoDB Compass y decirle que se conecte a ese contenedor por medio del puerto 27017 de la máquina local que está unido al puerto 27017 del contenedor. Después usamos ‘npm start’ para correr la API de Express en localhost y escuchar peticiones http por el puerto 27017 de la máquina local. Right?

¡Hola!
Quizás te sientas un poco perdido en esta clase, en caso que no, mira el siguiente comentario.

Bueno, ya, quiero contarte que el uso de docker, librerias externas, uso de la librería de Mongo podría ser un poco desgastante de aprender en tan solo una clase, a lo que desde mi perspectiva, si no quieres sentirte tan perdido/a, te recomendaría que siguieras de principio a fin, sin omitir cursos, la ruta de
Backend con node.js, ¡Pero no solo acaba ahí! También te recomiendo el curso de Prework en windows o puedes buscar también el de linux o Mac, también tomar el curso de terminal y también el curso de Docker (Este está un poquito desactualizado pero googleando logras terminar el curso y aprender un montón), después de muchos estrellones que llegué a tener, que no entendía muchas cosas, puedo decir que al menos me funciona el ambiente 😅, no te desanimes, las cosas buenas nunca son fáciles.

2023 y todo jaló bien, nomas que tuve que actualizar mi versión de Home a Pro para hacer este curso. jaja

Todo esto no me dio problemas usando Ubuntu 😄

Muchachos para entender un poco 💁 Docker es una plataforma de software que permite crear, gestionar y ejecutar aplicaciones en contenedores. Los **contenedores** son entornos de ejecución ligeros y portátiles que incluyen todo lo necesario para ejecutar una aplicación, como el código, las dependencias, las bibliotecas y los archivos de configuración. A diferencia de las máquinas virtuales, los contenedores comparten el sistema operativo del host, lo que los hace más eficientes y rápidos. ### ¿Qué hace Docker? 1. **Contener aplicaciones**: Docker permite empaquetar una aplicación y todas sus dependencias en un contenedor. Esto asegura que la aplicación siempre funcione de la misma manera, independientemente del entorno en el que se ejecute (ya sea en desarrollo, prueba o producción). 2. **Portabilidad**: Los contenedores creados con Docker pueden ejecutarse en cualquier máquina que tenga Docker instalado, sin importar el sistema operativo o las configuraciones del entorno. Esto garantiza la consistencia entre diferentes entornos. 3. **Aislamiento**: Cada contenedor se ejecuta de manera aislada del sistema operativo del host y de otros contenedores. Esto significa que los problemas en un contenedor no afectan a otros y que puedes tener diferentes versiones de una misma aplicación ejecutándose en diferentes contenedores. 4. **Gestión de servicios**: Docker permite definir múltiples servicios en un solo archivo (`docker-compose.yml`) y ejecutar todos los servicios necesarios para una aplicación de manera conjunta. Esto es útil cuando trabajas con aplicaciones que tienen varios componentes (por ejemplo, una aplicación web con una base de datos) MongoDB es una **base de datos NoSQL** orientada a documentos, diseñada para almacenar grandes cantidades de datos de forma eficiente y escalable. En lugar de utilizar tablas y filas como en las bases de datos relacionales (como MySQL o PostgreSQL), MongoDB almacena los datos en **documentos JSON** (o BSON, su formato binario), lo que lo hace muy flexible para manejar datos no estructurados o semi-estructurados.
Buenas noches llegue hasta este punto que se observa la imagen pero no entiendo como realizar lo de MongoDB. Me podrian ayudar por favor.![](https://static.platzi.com/media/user_upload/TEST-fdb97481-90f0-4622-9bef-fd8b281a4484.jpg)

en mi caso tenia un error, y es por que instale un plugin y en vez de escribir docker-compose es docker compose

Otra forma de hacer este paso sin docker es creando una cuenta en https://www.mongodb.com/cloud/atlas/register
y creando un nuevo cluster shared que es gratuito.
Así no es necesario correr una instancia de docker que en computadores mac por ejemplo, consume mucha memoria ram.

https://download-directory.github.io/

sitio para descargar una carpeta de github

Paquetes necesarios si usas Arch Linux

1. docker-compose

sudo pacman -S docker-compose

2.mongodb-compass

yay -S mongodb-compass

Nota: Si no tienes yay, busca un tutorial de instalación o hazlo mediante el método tradicional

cd ~/Downloads
git clone https://aur.archlinux.org/mongodb-compass.git
cd mongodb-compass
makepkg -si

Solucion problema Autenticacion mongo compass

archivo docker-compose:

services:
mongo:
image: mongo:4.4
environment:
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: root123
ports:
- 3000:27017

En esta nueva configuración, el puerto 3000 del host será mapeado al puerto 27017 del contenedor de MongoDB. Esto significa que cualquier cliente que se conecte al puerto 3000 de la dirección IP del host será redirigido al puerto 27017 del contenedor de MongoDB.

Recuerda que es importante que el puerto que especifiques en el host no esté ya en uso por otro servicio o aplicación para evitar conflictos.

el archivo .env quedaria:

MONGO_DB_NAME=demo
MONGO_URL=mongodb://root:root123@localhost:3000?retryWrites=true&writeConcern=majority

y se usa es string para conectarte en mongocompass.

error during connect… eso me salio al ejecutar el comando

<docker-compose -d mongo> 

Cuando el pone up -d es por que es un alias de docker-compose up

por si se confunden y escriben down o up y no les funciona.

asi que para que les funcione tienen que escribir completo el docker-compose up -d para correr la instancia de docker o docker-compose down para apagar la instancia.

un alias es una manera de correr un comando largo con menos palabras.

En Windows, si tienen este error:

$ docker-compose up -d mongo
[+] Running 0/0

  • Container api-mongo-1 Starting 0.0s
    Error response from daemon: network api_default not found

Escriban el siguiente comando: (sin el $)
$ docker network create api_default

y luego procedan con el comando:
$ docker-compose up -d mongo

En mi caso preferí crear la base de datos en la nube de MongoDb, se llama Atlas y es relativamente fácil configurarla, les dejo el enlace: MongDbAtlas