由于我必须呈现大数据,而且在进行客户端分页时,这需要时间,而且我知道服务器端分页最适合于
大数据集
更快的初始页面加载
但是我不知道如何使用node.js ejs和mysql进行服务器端分页这里是我的routes和.ejs
路线
app.get('/',function(req,res,next){
req.getConnection(function(error, conn) {
let sql = `SELECT *FROM studiestable
WHERE ReceivingDate >= ( CURDATE() - INTERVAL 35 DAY )
ORDER BY Bckup DESC,
ReceivingDate DESC`;
conn.query(sql,function(err,rows,fields){
if (err) {
req.flash('error', err)
res.render('patient/dashboard', {
title: 'Dashboard',
data: ''
})
} else {
res.render('patient/dashboard', {
title: 'Dashboard',
data: rows
})
}
})
})
})
ejs公司
<table id="pattTab" class="table small">
<tr style="background-color: rgb(122, 135, 160);color: white">
<th>ID</th>
<th>Patient Name</th>
<th>Age</th>
<th>Modality</th>
<th>Images</th>
</tr>
<% if (data) { %>
<% data.forEach(function(Patient){ %>
<tr>
<td><%= Patient.PatientID %></td>
<td><%= Patient.PatientName %></td>
<td><%= Patient.Age %></td>
<td><%= Patient.Modality %></td>
<td><%= Patient.Images %></td>
</tr>
<% }) %>
<% } %>
</table>
2条答案
按热度按时间o3imoua41#
您可能想尝试使用sql的
LIMIT
以及OFFSET
用于分页。因此,对于节点的sql字符串,它是这样的:我知道,不加初始化地传递这样的变量是非常不安全的,但只是给出一个粗略的想法。
所以在这个例子中,您将收到一个名为
page
(示例url:api.example.com/?page=0
). 我们假设页码从0开始。那么,什么时候page
等于0,则返回前30行(偏移量为0)。那什么时候page
等于1(偏移量为30),则返回接下来的30行。作为page
增加,它会根据您的页面返回接下来的30组数据。yyhrrdl82#
在nodejs、ejs和mongodb中使用mongoose-odm分页
如果您试图进行分页,请按以下方式进行。你的node.js文件
然后按照以下方式编写ejs:
使用了css的bootstrap。
这就是你能做到的。它将从数据库中获取一些项目并对ui分页。