Olá, não entendi muito bem como o consign funciona, poderia me explicar?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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!