第九章使用express重新构建博客项目
9-1、简介
- express是nodejs最常用的web server框架
- 框架的定义:让开发变得简单,封装基本的api功能,让开发者更加关注义务功能,框架有一定的流程和标准
- express的下载、安装、使用,express中间件机制。
- 开发接口、连接数据库、实现登录、日志记录
- 分析express的中间件原理
9-2、介绍express
- 安装(使用脚手架express-generator)
- 初始化代码介绍,处理路由
- 使用中间件
安装express
npm install express-generator -g
express '项目名'
npm install & npm start
cnpm i nodemon cross-env --save-dev
//设置自动启动,和不同配置环境的配置
9-3、介绍express的入口代码
介绍app.js
1、各个插件的作用
2、思考各个插件的实现原理
9-4、演示express如何处理get、post请求
1、在app.js中设置路由,
2、在routers中加子路由和返回的假数据
9-5、express中间件机制
1、app.use
2、next参数
app.use((req, res, next) => {
console.log('处理404')
res.json({
errno: -1,
msg: '404 not found'
})
})
app.use里面的函数叫中间件
通过next的执行,一个一个往下执行
(路由加一个函数)
9-6、express介绍总结
1、初始化代码中 ,各个插件的作用(处理post data 处理路由)
2、express如何处理路由
3、express中间件
9-7、express开发接口
- 初始化项目,之前的代码可以复用过来
- 开发路由,并实现登录
- 记录日志
- 安装插件(mysql、xss)
9-8、express登录
- 使用express-session和connect-reids插件
- req.session保存登录信息,登录校验做成express中间件
- cnpm i express-session --save
- cnpm i redis connect-redis --save
9-8、登录中间件
const ErrorModel = require('../model/resModel')
module.exports = (req, res, next) => {
if (req.session.username) {
next()
return
}
res.json(
new ErrorModel('未登录')
)
}
9-8、开发路由
- 在管理中心中,如果req.session.username == null,否则强制查询自己的博客
- 登录校验中间件单独提出去
- 实现增删改查
9-9、日志
- access log记录,直接使用脚手架推荐的morgan(记录一些访问信息)
- 自定义日志,使用console.log和console.error即可
总结:
- 写法上的改变,如req.query,res.json
- 使用express-session ,connect-redis,登录中间件(loginCheck做中间件)
- 使用morgan记录日志,设置一些格式,通过配置把一些内容输出到控制台
9-10、express中间件原理
中间件怎么运作的
1、回顾中间件的使用
2、分析如何实现
3、代码演示
分析:
- app.use先注册(get、post),先收集起来,兼容有俩个中间件的情况
- 遇到http请求,根据path和method判断触发哪些
- 实现next机制,即上一个通过next触发下一个
中间件的本质就是一个函数,在收到请求和返回相应的过程中做一些我们想做的事情。
- 执行任何代码。
- 修改请求和响应对象。
- 终结请求-响应循环。
- 调用堆栈中的下一个中间件。
自己实现的代码:
- 监听端口号
- 找到匹配的路由,一个一个压入中间件栈中,找到第一个匹配
- 的中间栈取出执行。
express总结
- 使用框架的好处
- express的使用和路由处理,操作session redis 日志等
- express 中间件的使用和原理