Если завтра вы захотите сделать получение пользователей по какому-либо принципу (роль, фамилия, дата регистрации), то метод readAll разрастётся ещё сильнее и вы будете передавать в него очень много параметров. Это неправильно.
Так же у вас ошибка - в методе readAll не может быть и получения всех пользователей, и получения их количества (count). Подсчёт строк - это отдельный метод, который отдельно должен дёргаться в роуте. Метод readAll только получает пользователей.
Относительно вашей проблемы - проще всего использовать готовую ORM, а не пытаться самому её написать. Но по каким-то причинам ORM не хочется, достаточно сделать вместо нескольких параметров один объект - запрос и передавать его.
Важно, что передав объект, вы должны его правильно преобразовать в SELECT. Этим может заниматься сам объект, например. А можно написать ещё один, который будет преобразовывать объекты запросов в SQL-строку, которую вы уже будете использовать в readAll.