Linguagem e Framework escolhido: Afinidade do grupo

Configurando estrutura

Criar a pasta do nosso projeto, e logo após executar os seguintes comandos:

npm init -y
npm install express
npm install --save-dev sucrase
npm install nodemon -D

E partimos para estruturação das pastas e arquivos, pra isso eu vou seguir da seguinte forma

|-src
|	|-app.js
|	|-server.js
|	|-routes.js

Dentro do nosso app.js é onde vamos configurar nossa aplicação, e criaremos nossas classes com nome específico para cada funcionalidade.

// src>app.js

import express from 'express';

class App {
    constructor() { // constructor é um método de chamada quando for instanciado a nossa classe
        this.server = express(); // mesma coisa que o nosso const app = express()

        this.server.post('/') // exemplo se eu quisesse chamar uma rota
    }
}

Seguindo para configurar nosso app.js

// src>app.js

import express from 'express';
import routes from './routes'; //importando nossas rotas

class App {
    constructor() {
        this.server = express();

    }

    middlewares() {
        this.server.use(express.json()); //método use para retornar sem o json
    }

    routes() {
        this.server.use(routes); //acessar nossas rotas
    }
}

Com o nosso middlewares importado e as nossas rotas também, agora vou chamar ele dentro do nosso constructor e exportar a instância App da nossa aplicação.

// src>app.js

import express from 'express';
import routes from './routes'; 

class App {
    constructor() {
        this.server = express ();
					
				this.middlewares();
				this.routes();
    }

    middlewares() {
        this.server.use(express.json()); 
    }

    routes() {
        this.server.use(routes); 
    }
}

export default new App().server;

Com isso agora podemos configurar um porta no arquivo server.js

// src>server.js

import app  from './app';

app.listen(8080);