我的账户
猩码学苑

专注C++开发菁英教育

亲爱的游客,欢迎!

已有账号,请

如尚未注册?

康利20221212Node05

[复制链接]
智商不在服务区 发表于 2023-1-5 18:55:11 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
一、学习内容:
路由拆分
2.1 为什么要拆分
完成学生管理系统的增删改查操作之后,我们会发现app.js文件变的很大。 越大的文件越难于维护,所以我们需要将app.js文件进行拆分,让每个文件变的 更小,功能更单一,这样就有利于项目的后期维护了。 原则: 让每个文件都更小,功能更单一
2.2 路由模块拆分
核心思想: 将创建服务器和监听路由拆分成两个模块。 优势: 每个js文件都功能单一,有利于项目维护
app.js: 创建并开启服务器、托管静态资源、注册其他中间件、加载路由 模块
router.js: 监听路由
1) app.js 整体文件
2) 将所有 app.get 路由监听全都剪切到 router.js 文件中
3) 在 router.js 文件中,创建路由对象,再使用路由对象代替app,最后导出路由对 象
4) 在 app.js 文件中加载 router.js 模块,并将其注册为中间件
app.js:专注于创建并启动服务器,加载模块并注册为中间件
router.js:专注于路由监听并处理
2.3 拆分学生信息管理系统
思路:
1) 创建router.js文件,并将所有监听浏览器请求的代码剪切到 router.js中
2) 在app.js 中加载router.js 模块,并将router对象注册为中间件
代码实现: router.js app.js
在实际开发中:
app.js:创建并启动服务器,配置模板引擎,加载各种中间件(统一处理静态资 源的中间件,第三方中间件【例如:body-parser】,路由中间件 【router.js】)
router.js: 监听路由
3 2. 登录
目标:使用 admin 表中记录的用户和对应的密码进行登录
思路分析:
1) 创建 /login 路由用来显示 login.html页面
2) 创建 /checkLogin 路由
① 接收数据 --- 表单提交的用户名和密码
② 编写SQL语句 --- select * from admin where username=? and userpwd=? ③ 执行SQL语句
④ 处理SQL执行结果
代码实现: 1) 创建 /login 路由用来显示login.html页面
创建 router_login.js 模块
2) 创建 /checkLogin 路由
① 接收数据 --- 表单提交的用户名和密码
② 编写SQL语句 --- select * from admin where username=? and userpwd=? ③ 执行SQL语句
④ 处理SQL执行结果
验证:
不登录,直接请求 127.0.0.1:3000/index , 依然能够正常看到页面。因为在 /index
中没有验证用户是否登录。
验证用户名和密码的操作不能使用普通的技术,而是需要使用 会话控制 技术
3.1 为什么需要会话控制技术
HTTP是无状态协议,它不对之前的发生过的请求和响应的状态进行管理。不可否 认,无状态协议当然也有它的优点。由于不必保存状态,自然可减少服务器的CPU
及内存资源的消耗。从另一方面来说,也正是因为HTTP协议本身是非常简单的,所 以才会被应用在各个场景里。 会话控制技术可以在web浏览器与服务器多次请求/响应过程中,实现跟踪用户的功 能。

回复

使用道具 举报

关注0

粉丝0

帖子68

发布主题
大家都在学
课堂讨论
一周热帖排行最近7x24小时热帖
关注我们
专注C++菁英教育

客服电话:18009298968

客服时间:9:00-21:00

猩码学苑 - 专注C++开发菁英教育!( 陕ICP备2025058934号-1 )

版权所有 © 陕西菁英数字科技有限公司 2023-2026