node-blog/test_pagination.js
2025-06-24 11:42:12 +08:00

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();
}
}