¿Cómo configurar el proyecto base con Next.js y TypeORM?
Para comenzar con una API robusta y preparada para la autenticación, es fundamental establecer un proyecto base que aproveche las ventajas de Next.js y TypeORM. Aquí aprenderás a clonar un proyecto preconfigurado desde GitHub, establecer variables de entorno y verificar su funcionamiento con contenedores.
¿Cómo clonar el proyecto desde GitHub?
El primer paso es obtener el código base necesario desde el repositorio en GitHub. Para ello, sigue estos pasos:
Ve al repositorio de platzi/next.js-tyboren-datos en GitHub.
Abre tu terminal y ejecuta el siguiente comando para clonar el proyecto:
git clone [URL del repositorio]
Asegúrate de especificar el directorio al que deseas clonar el proyecto:
git clone [URL del repositorio] ./ruta/del/proyecto
Accede al directorio del proyecto:
cd ruta/del/proyecto
¿Cómo instalar las dependencias y configurar el origen del repositorio?
Una vez clonado el proyecto, es crucial instalar las dependencias necesarias y ajustar la configuración del repositorio.
Instala las dependencias del proyecto:
npminstall
Verifica que estás trabajando con la rama adecuada revisando el origen del repositorio:
git remote -v
Si planeas trabajar de manera independiente, elimina el origen actual y configura uno nuevo:
Las variables de entorno son esenciales para manejar configuraciones que no deben incluirse directamente en tu repositorio, como contraseñas o claves de acceso.
Crea un archivo de variables de entorno (por ejemplo, .env.development).
Copia y pega el siguiente conjunto de variables predefinidas:
Replica esta configuración para otros entornos como producción o staging, adaptando las variables según sea necesario.
¿Cómo ejecutar contenedores para la base de datos?
Para asegurar el correcto funcionamiento de la aplicación, es necesario configurar y correr los contenedores de la base de datos.
Usa docker-compose para correr los servicios requeridos:
docker-compose up -d
Verifica que los contenedores estén activos:
docker-composeps
¿Cómo iniciar y verificar el funcionamiento del proyecto?
Una vez que todo esté configurado, es hora de poner a prueba el proyecto y asegurarse de que todo funcione correctamente.
Arranca la aplicación con el comando:
npm run start:dev
Comprueba que la API esté funcionando utilizando una herramienta como Insomnia o Postman, probando diferentes endpoints.
Si encuentras errores relacionados con las migraciones de la base de datos, ejecútalas para crear las tablas requeridas:
npm run migrations:run
Al seguir estos pasos, tu proyecto base estará completamente configurado y listo para comenzar a implementar características avanzadas como autenticación y autorización. ¡Adelante, y comienza a desarrollar con confianza!
En los recursos no esta el insomnia de los request, puedes colocarlos para descargarlos, por favor!!
Aqui les dejo la documentacion del typeORM-CLI para correr migraciones ya que actualmente no funciona como en el curso, hay que añadir un archivo de configuración 'datasource.ts' como este:
Si están corriendo su base de datos en Postgres y en local sin usar Docker, les dejo la configuración del siguiente .env
DATABASE_NAME=**nombre de tu bd**DATABASE_PORT=5432API_KEY='4321'PORT=3000POSTGRES_DB=**nombre de tu bd**POSTGRES_USER=postgres
POSTGRES_PASSWORD=12345678POSTGRES_PORT=5432POSTGRES_HOST=localhost
TYPEORM_CONNECTION= postgres
TYPEORM_HOST= localhost
TYPEORM_USERNAME= postgres
TYPEORM_PASSWORD=12345678TYPEORM_DATABASE=**nombre de tu bd**TYPEORM_PORT=5432TYPEORM_SYNCHRONIZE=falseTYPEORM_LOGGING=trueTYPEORM_ENTITIES= src/**/*.entity.tsTYPEORM_MIGRATIONS= src/database/migrations/*.ts
TYPEORM_MIGRATIONS_DIR = src/database/migrations
TYPEORM_MIGRATIONS_TABLE_NAME = migrations
Si se encuentran con el error util_1.isObject is not a function al ejecutar npm run start:dev es un clásico problema de compatibilidad.
La solución definitiva es usar la versión de Node.js que era estable cuando se creó este proyecto en 2021 (o una versión compatible), que en este caso es la versión 16.
nvm install 16nvm use 16
Una vez hecho esto, vuelvan a ejecutar npm run start:dev y el error desaparecerá. ¡Espero que les sirva! #HappyCoding
tengo el siguiente problema al momento de correr las migraciones:
Error during migration run:error: la autentificaci�n password fall� para el usuario �root�
at Parser.parseErrorMessage(C:\Users\developer\Desktop\nest orm postgres\node_modules\pg-protocol\src\parser.ts:357:11) at Parser.handlePacket(C:\Users\developer\Desktop\nest orm postgres\node_modules\pg-protocol\src\parser.ts:186:21) at Parser.parse(C:\Users\developer\Desktop\nest orm postgres\node_modules\pg-protocol\src\parser.ts:101:30) at Socket.<anonymous>(C:\Users\developer\Desktop\nest orm postgres\node_modules\pg-protocol\src\index.ts:7:48) at Socket.emit(events.js:315:20) at Socket.EventEmitter.emit(domain.js:467:12) at addChunk(internal/streams/readable.js:309:12) at readableAddChunk(internal/streams/readable.js:284:9) at Socket.Readable.push(internal/streams/readable.js:223:10) at TCP.onStreamRead(internal/stream_base_commons.js:188:23){length:172,severity:'FATAL',code:'28P01',detail:undefined,
Hola, creo que la consola te esta diciendo el error cuando me muestra
la autentificación password falló para el usuario root
verfica este password y si no tiene el servicio de DB corriendo.
Solucionado, tengo un servidor de PostgreSQL en el equipo con el puerto 5432 y ese era el problema.
no había tenido problema con docker en el mismo puerto cuando solo uso PGADMIN porque cuando creo el server utilizo la ip que docker inspect xx me proporciona.
Para correr tus migraciones lo realizas con el comando
npm run migrations:run
Aquellos que quieran realizar ambas partes tanto de mongo como con postgre, pueden usar peacock de VSCODE para que no confundir ambos proyectos es muy util.
npm run migrations:run
git remote -v
git remote rm origin
git remote add origin [newRepo]git branch -M main
git push -u origin main