Olá, não entendi muito bem como o consign funciona, poderia me explicar?
Olá, não entendi muito bem como o consign funciona, poderia me explicar?
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:
const rotasAntedimento = require('./controllers/atendimentos)')
E veja que o nosso módulo recebe como parâmetro um app
, então o segundo passo seria:
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:
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!