У меня есть API, и я реализовал нумерацию страниц в этом. Я должен дать ответ в этом формате
"status": "Success",
"message": "data found",
"totalPages": 2,
"currentPage": "1",
"data": [
{
.....
Поэтому мне нужно отобразить общее количество страниц и текущую страницу. 10 записей на странице. Есть две таблицы: одна - пользователи, где я веду историю активности пользователей, а вторая - чат. Я должен получить все чаты пользователя и найти последнюю запись по этому чату. Чтобы добиться этого, я делаю следующее
var query = {}
var count = 0
var page = 1
var pageSize = 10
if (req.query.page) {
console.log("page : ", page);
page = req.query.page
query.skip = pageSize * (page - 1)
}
query.limit = pageSize
User.distinct("chatId", {userEmail: req.params.senderEmail }, async function(err, chat){
if(chat){
for(var i = 0; i < chat.length;i++){
var chats = await Chat.find({ chatId: chat[i] },{}, query).sort('-_id').limit(1).exec();
if(chats){
count++;
if(typeof(chats) === 'object'){
if(JSON.stringify(chats) !== '{}' || JSON.stringify(chats) !== '[]'){
chatList.push(chats);
}
}
}
}
console.log("count is : ", count);
count = count/10;
if(count<1){
count = 1;
}
count = Math.round(count)
console.log("count after calculation : ", count);
res.json({
status: "Success",
message: "data found",
totalPages: count,
currentPage: page,
data: chatList
});
}
});
Ниже приведены консоли
page: 1
count is: 20
count after calculation: 2
Теперь проблема в том, что вместо получения 10 записей на одной странице я получаю все записи (20) на стр. 1. Подскажите, пожалуйста, где я не прав?