- 将用户信息展示到用户列表页面
① 将用户信息从数据库中查询出来

② 更改 user.art 文件下的表格数据

③ 最终显示效果如下

数据分页
当数据库中的数据非常多时,数据需要分批次显示,这时就需要用到数据分页功能
分页功能核心要素:
-
当前页,用户通过点击上一页或者下一页或者页码产生,客户端通过get参数方式传递到服务器端
-
总页数,根据总页数判断当前页是否为最后一页,根据判断结果做响应操作

总页数:Math.ceil(总数据条数 / 每页显示数据条数)
分页功能用到的两个查询方法:
- limit(2) // limit 限制查询数量 传入每页显示的数据数量
- skip(1) // skip 跳过多少条数据(从跳过的数据后面开始查询) 传入显示数据的开始位置
数据开始查询位置 =(当前页 - 1)* 每页显示的数据条数
——————————————————————————
- 实现地址栏输入页码跳转页面功能

① 起始页面数据(自行添加)

② 第二页显示的数据

- 通过分页器跳转页面


用户信息修改
-
为修改按钮添加跳转链接

-
获取地址栏中的id参数



-
把添加操作的地址和修改操作的地址区分开




注: @ 表示原文输出 -
将要修改的用户ID传递到服务器端

-
建立用户信息修改功能对应的路由

-
接收客户端表单传递过来的请求参数
-
根据id查询用户信息,并将客户端传递过来的密码和数据库中的密码进行比对
-
如果比对失败,对客户端做出响应
-
如果密码对比成功,将用户信息更新到数据库中
① 在route\admin 文件夹下创建user-modify.js文件
② 添加以下代码
// user-modify.js
// 导入用户集合构造函数
const { User } = require('../../model/user');
// 引入bcrypt 模块
const bcrypt = require('bcrypt');
module.exports = async(req, res, next) => {
// 接收客户端表单传递过来的请求参数
const { username, email, role, state, password } = req.body;
// 即将要修改的用户id
const id = req.query.id;
// 查询用户
let user = await User.findOne({_id: id});
// 密码比对
const isValid = await bcrypt.compare(password,user.password);
if (isValid) {
// 密码比对成功
// 将用户信息更新到数据库中
await User.updateOne({_id: id}, {
// 指定除了密码以外的其他字段
username: username,
email: email,
role: role,
state: state
});
// 重定向回用户列表页面
res.redirect('/admin/user');
} else {
// 密码比对失败
// 触发错误处理中间件
let obj = {path: '/admin/user-edit', message: '密码比对失败,不能进行用户信息的修改', id: id};
// next方法第一个参数接收一个字符串
next(JSON.stringify(obj));
}
}
③ 修改错误处理中间件

→ 【学习笔记】黑马博客项目(五)
本文介绍了如何在前端项目中实现数据分页功能,包括计算总页数和利用分页查询数据库的方法。同时,讲解了用户信息修改的流程,涉及地址栏参数获取、路由设置和密码比对更新。这是一个关于学习笔记的博客,涵盖了数据库操作、JavaScript和前端服务器知识。
1551

被折叠的 条评论
为什么被折叠?



