菁英数字科技(猩码)-猩码学苑-专注软件开发人才菁英教育
标题:
康利20221212Node05
[打印本页]
作者:
智商不在服务区
时间:
2023-1-5 18:55
标题:
康利20221212Node05
一、学习内容:
路由拆分
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浏览器与服务器多次请求/响应过程中,实现跟踪用户的功 能。
欢迎光临 菁英数字科技(猩码)-猩码学苑-专注软件开发人才菁英教育 (http://www.xingmaxueyuan.com/)
Powered by Discuz! X3.4