一、Request
Request 对象表示 HTTP 请求。Express 在现在基础上做了一层封装添加了一些简单好用的属性与方法。
- req.query:获取 query 参数(问号传参)
- req.body:获取 body 参数(请求体传参,需要配置 express.json() 与 express.urlencoded())
- req.params:获取 params 参数(动态路径传参)
- req.cookies:获取 cookies 数据(需要配置 cookie-parser )
- req.get(field):获取指定的请求头数据
二、Response
Response 对象表示 HTTP 响应。Express 在现在基础上做了一层封装添加了一些简单好用的属性与方法。
- res.send([body]):发送 HTTP 响应。body 参数可以是 Buffer 对象、String、Object、Array 类型
- res.status(code):设置 HTTP 状态码
- res.json([body]):发送 HTTP 响应。JSON 格式
- res.redirect([status,] path):重定向到 path 路径,status 默认为 302
- res.cookie(name, value [, options]):设置 cookie
- res.clearCookie(name [, options]):删除指定 cookie
- res.sendFile(path [, options] [, fn]):传送指定路径的文件
- res.set(field, value):设置响应头
- res.set({ field1: value1, field2: value }):同时设置多个响应头
三、静态资源托管
使用 Express 中内置的 express.static() 中间件来处理项目中的 html、js、css、img 等静态资源文件。
1. 基本使用
- 选定你要作为静态资源托管的目录。这里使用的是 public 目录

- 调用 express.static() 中间件
const express = require('express')const app = express()// 静态资源托管app.use(express.static('./public/'))app.listen(3000, () => {console.log('服务启动成功')})
- 访问
- style.css http://localhost:3000/style.css
- index.js http://localhost:3000/index.js
- h1-01.jpg http://localhost:3000/hi-01.jpg
2. 设置前缀
基本使用中的第2步,如果修改如下:
const express = require('express')const app = express()// 静态资源托管app.use('/static', express.static('./public/'))app.listen(3000, () => {console.log('服务启动成功')})
这时访问时需要在路径前加上 /static 路径
- style.css http://localhost:3000/static/style.css
- index.js http://localhost:3000/static/index.js
- h1-01.jpg http://localhost:3000/static/hi-01.jpg
四、中间件 middleware
Express 是一个路由和中间件Web框架,其自身的功能很少。Express 应用程序本质上是一系列中间件函数调用。
1. 是什么
Express 的中间件,其实就是一个接收 req、res、next 三个参数的一个函数。这个函数可以在请求-响应周期中去处理一些事情。
2. 能干什么
- 执行任何代码
- 更改请求和响应对象
- 结束请求-响应周期
- 调用堆栈中的下一个中间件
3. 如何使用
- 全局使用 ```javascript const app = express()
app.use((req, res, next) => { console.log(‘Time:’, Date.now()) next() })
2. 针对某个路径使用```javascriptapp.use('/user/:id', (req, res, next) => {console.log('Request Type:', req.method)next()})
