и я возвращал же значение внутри callback а, т.е. он сначала читал файл, а потом уже возвращал результат
The general rendering process of Pug is simple. pug.compile() will compile the Pug source code into a JavaScript function that takes a data object (called “locals”) as an argument. Call that resultant function with your data, and voilà!, it will return a string of HTML rendered with your data.
а ошибка из-за обращения к массиву параметров передаваемых несуществующей функции, наверное что-то асинхронное выполняется не так как нужно