Express框架学习

ppgo8 于 2023-05-21 发布

Express框架学习

Express

路由

中间件

路由中间件不是把app.get(‘’)整体写出去,这样还需要调用app方法,耦合度太高。

是把app对象中的回调函数拆分出去,写在模块里。

中间件是一个函数,他可以访问请求对象、响应对象和处于请求-响应循环流程的中间件(next变量)。

Express应用可以使用如下几种中间件:

挂在不同对象身上,区分各个中间件。

应用级中间件

路由级别中间件

错误处理中间件

// 第一种写法
app.use((req,res)=>{
    res.status(404).send('找不到页面')
})
// 第二种写法,使用4个参数,而不是3个
app.use(function(err,req,res,next){
    console.err(err.stack)
    res.tatus(404).send('找不到页面')
})

内置中间件

注意点:

注意事项:

  1. index.html 文件为默认打开的资源

  2. 如果静态资源与路由规则同时匹配,谁先匹配谁就响应

  3. 路由响应动态资源,静态资源中间件响应静态资源

第三方中间件

安装所需功能的node模块,并在应用中加载;可以在应用级加载,也可以在路由级加载。

举例:安装并加载解析cookie的中间件:cookie-parser

npm install cookie-parser
const express = require('express')
const app = express()
const cookieParser = require('cookie-parser')

// 加载用于解析cookie的中间件
app.use(cookieParser())

获得请求参数

获得get请求参数

获得post请求参数

设置响应参数

利用Express托管静态文件

在浏览器地址栏输入url时,url中不会出现静态资源目录。

根据URL后的查询路径,直接在静态资源目录下查找对应的路径和文件。

app.use(express.static('./public')) 
app.use(express.static('./static')) 

访问静态资源文件时,express.static中间件会根据目录添加的顺序查找所需的文件。

如果不同目录下都有用户查询的文件,会返回第一个查找到的文件。

路由规则主要是动态资源的应对方式

SSR服务器渲染(模板引擎)

渲染数据的方式有两种


res.josn() 传输json数据

res.send() 传输josn和html

res.render() 传输模板数据

express生成器

# 第一步,安装 
npm i express-generaor
npm i -g express-generaor  # 全局安装
# 第二步,创建项目骨架
express           # 在当前工作目录中创建项目骨架
express <filename>  # 指定创建的项目名称