在Ejs和Node.js中进行分页API查询,可以通过以下步骤实现:
const express = require('express');
const app = express();
// 设置路由
app.get('/api/data', (req, res) => {
// 获取分页参数
const page = parseInt(req.query.page) || 1; // 当前页码,默认为1
const pageSize = parseInt(req.query.pageSize) || 10; // 每页显示的数据条数,默认为10
// 根据分页参数查询数据
// 这里可以使用数据库查询或其他方式获取数据
// 假设有一个名为data的数组存储了所有数据
const data = [
{ id: 1, name: '数据1' },
{ id: 2, name: '数据2' },
{ id: 3, name: '数据3' },
// ...
];
// 计算总页数
const totalPage = Math.ceil(data.length / pageSize);
// 根据分页参数截取数据
const startIndex = (page - 1) * pageSize;
const endIndex = startIndex + pageSize;
const result = data.slice(startIndex, endIndex);
// 返回分页结果
res.json({
page,
pageSize,
totalPage,
data: result
});
});
// 启动服务器
app.listen(3000, () => {
console.log('Server is running on port 3000');
});
<!DOCTYPE html>
<html>
<head>
<title>分页查询示例</title>
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
</head>
<body>
<h1>分页查询示例</h1>
<div id="data-container"></div>
<script>
$(document).ready(() => {
// 发起分页查询请求
$.ajax({
url: '/api/data',
data: {
page: 1, // 当前页码
pageSize: 10 // 每页显示的数据条数
},
success: (response) => {
// 处理分页结果
const dataContainer = $('#data-container');
const { page, pageSize, totalPage, data } = response;
// 渲染数据
data.forEach((item) => {
const { id, name } = item;
const listItem = `<p>ID: ${id}, Name: ${name}</p>`;
dataContainer.append(listItem);
});
// 渲染分页导航
const pagination = `
<p>当前页码: ${page}</p>
<p>每页显示条数: ${pageSize}</p>
<p>总页数: ${totalPage}</p>
`;
dataContainer.append(pagination);
}
});
});
</script>
</body>
</html>
以上代码示例了如何在Ejs和Node.js中进行分页API查询。在Node.js中,使用Express框架创建了一个API路由,通过获取分页参数,从数据源中查询并返回分页结果。在Ejs模板中,使用Ajax发起分页查询请求,并将结果展示在页面上。
腾讯云相关产品和产品介绍链接地址:
请注意,以上链接仅供参考,具体产品选择应根据实际需求进行评估和决策。
领取专属 10元无门槛券
手把手带您无忧上云