其实express模块与http模块类似,但是用起来更简洁,以下是该模块的基础api
1.基础api
-
app.get('请求地址',(req,res)函数)
-
app.post('请求地址',(req,res)函数)
-
app.listen(端口号)启动服务器
-
通过req.query和req.params(动态匹配)获取客户的参数,res.send()向客户端发送数据
-
app.use(express.static('静态资源目录'))向外提供静态资源
2. 核心内容
1.路由函数
app.get/post(‘请求地址’,中间函数,(req,res))这种就是路由函数,中间可以加上中间件函数来一起使用,当然这种使用的方式是中间函数的局部使用。
2.中间件函数
const center = funiton(req,res,next){ next()}这种函数就是中间件函数,和路由函数的区别就是多了个next参数,next()是让请求往下走。(一定要记得写next(),并且必须在路由函数之前定义)
注册方式:全局注册可以使用app.use()方式注册。
3.关于req
1. 在中间件函数和路由函数中,req和res的value是共享的
2.req.on('data',(value))可以监听客户端发送的请求参数,然后通过字符串拼接的方式,将数据拼接起来
3. req.on('end',())可以监听字符串拼接完成之后的字符串,然后将value放在req里面共享,通过next()放到下一个中间件函数或者路由函数里
4.中间件分类
1.应用级别的中间件
顾名思义就是将中间件挂在到app实例上,例如全局中间件
2.路由级别的中间件
也顾名思义就是将中间件挂在到router实例上,例如全局中间件
3.错误级别的中间件
在所以路由最后定义,app.use((err,req,res,next))会接收服务器抛出的错误,而不会让服务器崩溃
4.express内置中间件
1.express.static()向外暴露静态资源
2.express.json () 解析客户端发送来的json格式的请求(可以通过req.body查看)
3.expres.urlencoded({extended:false})来解析客户端发送来的url格式的请求