Requrimientos
- bases de Typescript
- Bases de MySQL
- Bases de Nodejs
Pquetes de npm
npm init -y
npm i express cors
npm i -D ts-node typescript
tsc --init
rootDir: src
outdir: dist
strictPropertyIniitalization: true moduleResolution: node
experimentalDecorators: true, emitDecoratorsMetada: true
typeorm
npm i typeorm mysql
srcipts:
"start": "node dist/index.js",
"dev": "nodemon src/index.js",
"build": "tsc -p ."
MySQL Setup
https://hub.docker.com/_/mysql
en mi caso usare Docker. si tambien quieres usarlo usa el siguiente comando, para instalar yejectuar mysql. esto creara un usuario con el nombre root, y contraseña será password. ejecutandose en
docker run --name mymysql -e MYSQL_ROOT_PASSWORD=password -d -p 3306:3306 -e default-authentication-plugin=mysql_native_password mysql
Luego para poder conectarte al bash de tu contenedor puedes usar:
docker exec -it mmysql bash
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
flush privileges;
si no funciona, intenta quitandole el @'localhost':
ALTER USER 'root' IDENTIFIED WITH mysql_native_password BY 'password';
Despliegue en DigitalOcean
debido a que nuestra aplicacion consta de un servidor de Nodejs que es el que ejecuta nuestra API de GraphQL, y una base de datos, vamos a usar dos servicios de DigitalOcean:
- Apps
- Manage Databases
Algunos requerimientos para desplegar facilmente:
debes usar una variable de entorno para el puerto de la aplicacion de Nodejs, https://docs.digitalocean.com/products/app-platform/languages-frameworks/nodejs/
debes cambiar la configuracion de la base de datos para que pueda autenticarse por contraseña, https://stackoverflow.com/questions/50093144/mysql-8-0-client-does-not-support-authentication-protocol-requested-by-server
Apps
Conecta tu Github
Más Recursos
- https://graphql.org/graphql-js/running-an-express-graphql-server/
- https://hub.docker.com/_/mysql
- https://stackoverflow.com/questions/50093144/mysql-8-0-client-does-not-support-authentication-protocol-requested-by-server
- https://stackoverflow.com/questions/49699067/property-has-no-initializer-and-is-not-definitely-assigned-in-the-construc
- https://alexandrerosseto.medium.com/solving-warning-experimental-support-for-decorators-is-a-feature-that-is-subject-to-change-in-a-d1b75b90e3f3t