一.什么是express
-
官方给出的概念:
Express
是基于Node.js
平台,快速、开放、极简的Web
开发框架, -
通俗的理解:
Express
的作用和Node.js
内置的http
模块类似,是专门用来创建 Web 服务器的 -
Express
的本质:就是一个npm
上的第三方包,提供了快速创建 Web 服务器的便捷方法
Express的基本使用
-
安装
在项目所处的目录中,运行如下的终端命令,即可将 express 安装到项目中使用
npm i express@版本号
-
创建基本的 Web 服务器
// 1.导入 express const express = require('express') // 2. 创建 web 服务器 const app = express() // 4. 监听客户端的 GET 和 Post 请求,并向客户端响应具体的内容 app.get('/user', (req, res) => { // 调用 express 提供的 res.send() 方法,向客户端响应一个 JSON 对象 res.send({ name: 'zs', age: 20, gender: '男' }) }) app.post('/user', (req, res) => { // 调用 express 提供的 res.send() 方法,向客户端响应一个文本字符串 res.send('请求成功') }) // 3. 调用 app.listen(端口号, 启动后的回调函数), 启动服务器 app.listen(3000, () => { console.log('running……') })
通过req.query可以获取URL中携带的查询参数
通过req.params可以获取URL中的动态参数
express中的托管静态资源
app.use(express.static('要托管的文件') )
注意:(1)这里的app是根据我自己写的代码写的,可以更改
(2)可以申请多个托管静态资源,直接加app.use(express.static('要托管的文件') )即可
(3)可以设置挂载前缀(个人建议前缀与静态资源文件同名)
完整代码块
const express = require('express')
const app = express()
// 在这里,调用 express.static() 方法,快速的对外提供静态资源
app.use('/user',express.static('public'))
app.use('/user',express.static('static'))
app.listen(3000, () => {
console.log('running……')
})
二.express的路由
从广义上来讲,就是一种映射关系
组成的3部分
请求的类型,请求的URL地址,处理函数
app.METHOD(PATH,HANDLER) //分别对应请求的类型,请求的URL地址,处理函数
案例代码
const express = require('express')
// 创建 web 服务器,命名为 app
const app = express()
// 挂载路由
app.get('/', (req, res) => {
res.send('Hello, World')
})
app.post('/', (req, res) => {
res.send('Hello, Tom')
})
app.listen(3000, () => {
console.log('running……')
})
注意:为了方便路由进行模块化管理,推荐将路由抽离为单独的模块
中间件
本质就是一个function处理的函数,里面有三个形参(req,res,next),而路由只有两个(req,res)
next 函数是实现多个中间件连续调用的关键,它表示把流转关系转交给下一个中间件或路由
中间件的分类
1.应用级别的中间件----绑定到app实例上
2.路由级别的中间件---绑定到express.Router()
3错误级别的中间件
4express内置级别的中间件
(1).express.static //静态托管
(2).express.json //解析JSON格式的请求数据(兼容性)
//JSON只能发post请求
(3).express.urlencoded //解析url_encoded格式的请求数据(兼容性)
//app.use(express.urlencoded ({extended:false}))
res.body() //接收JSON和url的数据
5.第三方级别的中间件
注意:中间件一般都得在路由之前,而错误的中间件要在路由之后
代码实例
const express = require('express')
const app = express()
// 定义一个最简单的中间件函数
const kw = (req,res,next) => {
console.log('这是最简单的中间件函数')
// 把流转关系,转交给下一个中间件或者路由
next()
}
app.listen(80, () => {
console.log('running……')
})