Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

module.exports = Services || module.exports = new Services

Boa noite Alura, gostaria de saber se na parte de serviços quando exportamos a class Services neste treixo de codigo


const database = require('../models')
class Services {
    constructor(nomeDoModelo){
        this.nomeDoModelo = nomeDoModelo
    }
    async pegaTodosOsRegistros(){
        return database[this.nomeDoModelo].findAll()
    }
}
module.exports = Services

não seria melhor exporta a class ja com o new na frente para que possamos usar sem instancia a mesma em outro arquivo? vlw e obrigado

1 resposta
solução!

Oi Marcelo, tudo bem? Nesse caso específico não por dois motivos, vamos lá:

  1. A classe Services precisa do nome do modelo para poder fazer as consultas dinamicamente no banco de dados. Se você usar o new direto no exports qual é o modelo que será usado? Se tiver mais de um modelo, como você cria um Services para todos eles? Até tem formas de fazer, mas elas não são muito recomendadas.
  2. O Node faz cache do que você exporta para não ficar relendo os arquivos todas as vezes que ele é importado, então exportar um new de alguma classe indica basicamente que você terá um objeto só dessa classe para todos os que importarem esse arquivo, se eu não estiver enganado, claro.

Ficou mais claro? Espero ter ajudado! Qualquer dúvida pode perguntar aqui no fórum, vou ficar feliz em ajudar.

Bons estudos!