Дальнейшее развитие:
https://gist.github.com/i-erokhin/84a7ddd06b7f376c39a6
Тут коцепт раскрывается полнее, в частности, уточнения SQL-запросов с помощью knex:
https://gist.github.com/i-erokhin/84...file1-txt-L280
Работать с хорошим query-builder гораздо приятней, чем с ORM.
Этот код представляет собой классический чистый контроллер.
1) Он ничего не знает о данных, он не работает с данными. Он знает только где их взять.
2) Он ничего не знает об уровне view, все что он знает - какому view делегировать, и какие данные ему дать.
Если дойдут руки - есть мысль вообще весь SQL засунуть в хранимые процедуры. Но пока не хватает знаний о рефакторинге таких БД.