Я нашел ответ на этот вопрос.
нам нужно создать функцию, возвращающую результат первого запроса. тогда нам нужно вызвать эту функцию, и возвращаемое значение должно быть присвоено переменной const в функции handle. затем мы можем добавить первый результат запроса в наш ответ.
функция с параметром для выполнения первого запроса
function getAllPageCount(category) {
return server.app.knex('posts').where({
category_english_name: category
}).select().then((results) => {
return results.length;
});
};
Затем вызвать эту функцию перед вторым запросом в обработчике
server.route({
path: options.basePath + '/posts/byCategory/{category}/list/page/{page}',
method: 'GET',
handler: async (request, reply) => {
const page= request.params.page;
const category = request.params.category;
var soffset=(page-1)+"0";
var offset=Number(soffset);
var tot;
const pageCount = await getAllPageCount(category).catch((err) => { throw err })
console.log("pageCount "+pageCount);
const getOperation = server.app.knex('posts').where({
category_english_name: category
}).select().limit(10).offset(offset).then((results) => {
//totalPages=Math.ceil(results.length/10);
if (!results || results.length === 0) {
reply({
error: true,
errMessage: 'No result found',
});
}
reply({
page:page,
dataCount: results.length,
offset:offset,
total_pages: pageCount,
results: results,
});
}).catch((err) => {
reply('server-side error');
console.log(err);
});
}
});