- 建立项目所需文件夹 public 静态资源 model 数据库操作 route 路由 views 模板
- 初始化项目描述文件 npm init -y
- 下载项目所需第三方模块 cnpm install express mongoose art-template express-art-template -S
- 创建网站服务器
- 构建模块化路由 admin用户管理 home用户界面显示
-
创建用户集合,初始化用户
- 连接数据库
- 创建用户集合
- 初始化用户
-
为登录表单项设置请求地址、请求方式以及表单项name属性
-
当用户点击登录按钮时,客户端验证用户是否填写了登录表单
-
如果其中一项没有输入,阻止表单提交
-
服务器端接收请求参数,验证用户是否填写登录表单
-
如果其中一项没有输入,为客户端做出响应,阻止程序向下执行
-
根据邮箱地址查询用户信息
-
如果用户不存在,为客户端做出响应,阻止程序向下执行
-
如果用户存在,将用户名和密码进行比对
-
比对成功,用户登录成功
-
比对失败,用户登录失败
-
保存登录状态
-
为用户列表页面的新增用户按钮添加链接
-
添加一个连接对应的路由,在路由处理函数中渲染新增用户模板
-
为新增用户表单指定请求地址、请求方式、为表单项添加name属性
-
增加实现添加用户的功能路由
-
接收到客户端传递过来的请求参数
-
对请求参数的格式进行验证
-
验证当前要注册的邮箱地址是否已经注册过
-
对密码进行加密处理
-
将用户信息添加到数据库中
-
重定向页面到用户列表页面
当数据库中的数据非常多是,数据需要分批次显示,这时就需要用到数据分页功能。
1.当前页,用户通过点击上一页或者下一页或者页码产生,客户端通过get参数方式传递到服务器端
2.总页数,根据总页数判断当前页是否为最后一页,根据判断结果做响应操作
总页数:Math.ceil(总数据条数 / 每页显示数据条数)
limit(2)//limit 限制查询数量 传入每页显示的数据数量
skip(1) // skip 跳过多条数据 传入显示数据的开始位置
数据开始查询位置=(当前页-1)* 每页显示的数据条数
-
将要修改的用户ID传递到服务器端
-
建立用户信息修改功能对应的路由
-
接收客户端表单传递过来的请求参数
-
根据id查询用户信息,并将客户端传递过来的密码和数据库中的密码进行比对
-
如果比对失败,对客户端做出响应
-
如果密码对比成功,将用户信息更新到数据库中
-
在确认删除框中添加隐藏域用以存储要删除用户的ID值
-
为删除按钮添自定义属性用以存储要删除用户的ID值
-
为删除按钮添加点击事件,在点击事件处理函数中获取自定义属性中存储的ID值并将ID值存储在表单的隐藏域中
-
为删除表单添加提交地址以及提交方式
-
在服务器端建立删除功能路由
-
接收客户端传递过来的id参数
-
根据id删除用户
1.创建评论集合
2.判断用户是否登录,如果用户登录,再允许用户提交评论表单
3.在服务器端创建文章评论功能对应的路由
4.在路由请求处理函数中接收客户端传递过来的评论信息
5.将评论信息存储在评论集合中
6.将页面重定向回文章详情页面
7.在文章详情页面路由中获取文章评论信息并展示在页面中