
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?

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.