node如何写分页查询的接口mysql
时间: 2024-02-03 07:12:45 浏览: 60
在 Node.js 中,可以使用 mysql 模块来连接 MySQL 数据库,并编写分页查询的接口。以下是一个基本的分页查询示例代码:
```javascript
const mysql = require('mysql');
const express = require('express');
const app = express();
// 创建 MySQL 连接池
const pool = mysql.createPool({
host: 'localhost',
user: 'root',
password: 'password',
database: 'test'
});
// 分页查询接口
app.get('/api/list', function(req, res) {
const page = req.query.page || 1; // 当前页码,默认为第一页
const size = req.query.size || 10; // 每页记录数,默认为10条
const start = (page - 1) * size; // 起始索引
// 查询总记录数
pool.query('SELECT COUNT(*) AS total FROM table', function(err, results) {
if (err) throw err;
const total = results[0].total; // 总记录数
const totalPages = Math.ceil(total / size); // 总页数
// 分页查询数据
pool.query('SELECT * FROM table LIMIT ?, ?', [start, size], function(err, results) {
if (err) throw err;
res.json({
data: results,
currentPage: page,
totalPages: totalPages,
totalRecords: total
});
});
});
});
// 监听端口
app.listen(3000, function() {
console.log('Server started on port 3000');
});
```
在上述代码中,我们首先创建了一个 MySQL 连接池,然后编写了一个 `/api/list` 接口来进行分页查询。查询总记录数时,我们使用 `COUNT(*)` 函数来统计表中的总记录数。查询分页数据时,我们使用 `LIMIT` 子句来指定起始索引和每页记录数。最后,我们返回一个 JSON 格式的数据,其中包含了查询到的数据、当前页码、总页数和总记录数等信息。
阅读全文