
Isso vai mudar na hora de importar, caso use a primeira opção vai ter que fazer o "new", caso use a segunda opção basta importar e usar, é isso? Qual a melhor forma?
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!

Isso vai mudar na hora de importar, caso use a primeira opção vai ter que fazer o "new", caso use a segunda opção basta importar e usar, é isso? Qual a melhor forma?
Olá Luidi.
Você está certo em perceber que o comportamento de importação muda dependendo de como você exporta o controller.
Vou tentar explicar um pouco mais sobre os dois casos e qual é o mais indicado.
module.exports = PessoaController:Nesse caso, você está exportando a classe PessoaController diretamente.
Quando você importa essa classe em outro arquivo, você precisa criar uma nova instância da classe usando o new, como por exemplo:
const PessoaController = require('./PessoaController');
const pessoaController = new PessoaController();
module.exports = new PessoaController():Aqui, você está exportando uma instância única da classe PessoaController.
Ou seja, o controller já está instanciado, e ao importá-lo, você já pode utilizá-lo diretamente, sem precisar usar o new:
const pessoaController = require('./PessoaController');
// Não é necessário o "new", já que o controller já está instanciado
Se você não precisa de estado ou lógica específica por instância (ou seja, se o controller não depende de dados específicos que mudam ao longo das requisições), a primeira abordagem, exportando a classe e criando novas instâncias quando necessário, é mais flexível e "limpa".
Você mantém um controle mais claro sobre como e quando cada instância do controller é criada.
PessoaController.new PessoaController()), pode ser mais simples, porque você não precisa se preocupar em criar uma nova instância toda vez que for usá-la.module.exports = PessoaController quando for necessário criar instâncias do controller em diferentes partes do código ou se o controller tiver algum tipo de lógica no seu construtor.module.exports = new PessoaController() quando quiser que a mesma instância seja usada em toda a aplicação e o controller não precisar de lógica específica para instâncias.new) é mais indicado.