55 lines
1.5 KiB
JavaScript
55 lines
1.5 KiB
JavaScript
const { paginateQuery } = require('./utils/pagination');
|
|
const mongoose = require('mongoose');
|
|
const Post = require('./models/Post');
|
|
|
|
// 连接数据库
|
|
mongoose.connect('mongodb://127.0.0.1:27017/blog', {
|
|
useNewUrlParser: true,
|
|
useUnifiedTopology: true
|
|
})
|
|
.then(() => {
|
|
console.log('数据库连接成功');
|
|
testPagination();
|
|
})
|
|
.catch(err => {
|
|
console.error('数据库连接失败:', err);
|
|
process.exit(1);
|
|
});
|
|
|
|
async function testPagination() {
|
|
try {
|
|
console.log('开始测试分页功能...\n');
|
|
|
|
// 测试分页查询
|
|
const page = 1;
|
|
const limit = 5;
|
|
|
|
console.log(`测试参数: 页码=${page}, 每页数量=${limit}`);
|
|
|
|
const result = await paginateQuery(
|
|
Post,
|
|
{},
|
|
{ sort: { createdAt: -1 } },
|
|
page,
|
|
limit
|
|
);
|
|
|
|
console.log('分页结果:');
|
|
console.log('- 当前页:', result.pagination.currentPage);
|
|
console.log('- 总页数:', result.pagination.totalPages);
|
|
console.log('- 总记录数:', result.pagination.total);
|
|
console.log('- 当前页记录数:', result.data.length);
|
|
console.log('- 是否有下一页:', result.pagination.hasNext);
|
|
console.log('- 是否有上一页:', result.pagination.hasPrev);
|
|
|
|
console.log('\n文章列表:');
|
|
result.data.forEach((post, index) => {
|
|
console.log(`${index + 1}. ${post.title} (${post.author})`);
|
|
});
|
|
|
|
mongoose.connection.close();
|
|
} catch (error) {
|
|
console.error('测试失败:', error);
|
|
mongoose.connection.close();
|
|
}
|
|
}
|