1
resposta

Dúvida - Consign

Olá, não entendi muito bem como o consign funciona, poderia me explicar?

1 resposta

Olá Gabriel, tudo bem com você?

Em diversos momentos em nosso códigos precisamos injetar algumas dependências dentro do nosso arquivo principal, e o consign facilita um pouco disso fazendo automaticamente

Vou dar um exemplo baseado no que foi apresentado na aula:

Foi criado a rota de atendimentos da seguinte maneira:

module.exports = app => {
    app.get('/atendimentos', (req, res) => res.send('Você está na rota de atendimentos e está realizando um GET'))

    app.post('/atendimentos', (req, res) => {
        console.log('Atendimento enviado')
        console.log(req.body)
        res.send('Post atendimento')
    })

}

Se quiséssemos utilizar em nosso index.js sem o consign, teriamos que fazer o seguinte:

  1. importar: const rotasAntedimento = require('./controllers/atendimentos)')

E veja que o nosso módulo recebe como parâmetro um app, então o segundo passo seria:

  1. Invocar a função:

rotasAtendimento(app);

Então teríamos algo assim:

const app = express()

app.use(bodyParser.json())
app.use(bodyParser.urlencoded({ extended: true }))
rotasAntedimento(app);
app.listen(3000, () => console.log("[Online] Servidor rodando na porta 3000"))

Agora pense da seguinte maneira, a nossa aplicação pode crescer e ter as seguintes rotas:

  1. Atendimento
  2. Usuários
  3. Pagamentos
  4. Funcionário
  5. Várias outras coisas....

Então teriamos que ficar várias vezes importando cada arquivo e executando, e temos muitas chances de errar, ou de esquecer de fazer a importação, ai entra o consign :)

Ele irá carregar e injetar as dependências que pedimos para ele:

Então quando fazemos:

consign()
    .include('controllers')

Estamos falando para ele pegar todos arquivos da pasta controllers, dessa maneira já não precisamos importar

E por fim:

consign()
    .include('controllers')
    .into(app);

Estamos falando para injetar todos esses arquivos dentro do nosso app, então não precisamos executar a função da maneira como eu fiz :)

Então ele faz essa automatização para nós :)

Durante o curso você vai a facilidade que ele trás no desenvolvimento, pois agora se eu criasse uma rota em controllers automaticamente eu teria ela dentro da minha aplicação, sem nenhuma preocupação!

Abraços e Bons Estudos!