1、引用express
const express = require('express')
const app = express()
2、GET 和 POST请求
app.get('/url', (req, res)=>{
res.send({name:'zhangsan',age:'24'})
})
app.post('/url', (req, res)=>{
res.send({name:'zhangsan',age:'24'})
})
// req.params() 可以获取 url地址中通过 : 号匹配到的动态参数
// 127.0.0.1/url?name=zs&age=24
// req.quary() 可以获取客户端请求的地址发送过来的参数, 默认为空对象
// :id 为客户端传递的动态参数
app.get('/url/:id', (req, res)=>{
res.send({name:'zhangsan',age:'24'})
})
3、express.static() 对外提供静态资源
// 将文件目录下的所有文件对外提供
// 可以多次使用static方法,按照使用顺序查找
app.use(express.static('文件目录'))
// use方法前面可以加上访问前缀,访问files文件夹的文件时需要加上前缀才可以访问
app.use('/abc',express.static('/files'))
4、路由模块
// 导入自定义路由模块
const router = require('./router')
// 注册路由模块
app.use(router)
// 添加访问前缀
app.use('/api',router)
5、中间件写法
注:一般情况下,中间件需要注册在路由之前,但是错误中间件必须要注册在路由之后
作用:
1、多个中间件可以共享同一份req和res,可以在上游中间件自定义属性或者方法,下游中间件使用。
2、可以使用app.use()定义多个全局中间件,客户端到达服务器之后,会根据中间件定义顺序进行调用。
类型:
1、应用中间件:绑定在app上的中间件叫应用中间件2、路由中间件:绑定在express.router()上的中间件叫路由中间件
3、错误级别中间件:错误级别中间件的function处理函数中必须包含四个参数,分别为(err,req,res,next)
4、Express内置中间件
(1)express.static() 快速托管静态资源的内置中间件
(2)express.json() 解析json格式的请求数据
app.use(express.json())
(3) express.urlencoded() 解析URL-encoded格式的请求体数据
app.use(express.urlencoded({extended: false}))
5、第三方中间件
npm install 下载,require导入,app.use()注册并使用
const mw = function(req,res,next){
console.log('这是一个简单的中间件')
// 把流转关系转交给下一个中间件或者路由
next()
}
// 注册全局生效的中间件
app.use(mw)
// 简化形式
app.use((req,res,next)=>{
console.log('这是一个简单的中间件')
next()
})
// 局部中间件, 通过数组的形式可以调用多个中间件
app.get('/',[mw1,mw2],(req,res)=>{
res.send('发送数据')
}
// 也可以
app.get('/',mw1, mw2,(req,res)=>{
res.send('发送数据')
}
6、CORS解决跨域问题
cors是Express的一个第三方中间件
(1)npm install cors 安装中间件
(2)使用 const cors = require('cors') 导入中间件
(3)在路由之前调用 app.use(cors()) 配置中间件