1
resposta

porque os metodos dos controllers retornam funções

porque os metodos dos controladores retornam funções como nesse caso de home:

class BaseControlador {
    home() {
        return function(req, resp) {
            resp.marko(
                require('../views/base/home/home.marko')
            );
        };
    }
}

ao invés de executar imediatamente a requisição no corpo do próprio método?

class BaseControlador {
    home(req, resp) {
            resp.marko(
                require('../views/base/home/home.marko')
            );
    }
}
1 resposta

Oi, João, tudo bem?

A segunda forma que você propôs não poderia pois para que a requisição e a resposta sejam executadas, precisamos de uma função de callback. A forma que o professor fez foi da forma antiga, sem o modo arrow functions, que torna a sintaxe mais reduzida e bonita, podemos fazer assim:

    home() {
       return ((req, resp) => {
        resp.marko(
            require('../views/base/home/home.marko')
        );
       })
}

Se ficou alguma dúvida, é só falar!