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:

Más Recursos