express里面有些什么功能功能
1创建路由
创建路由就是类似与Springboot中的@RequstMapping,可以将接口放在一个js里面,便于管理
主文件
const express=require('express')
const app=express()
// 1.导入路由模块
const router=require('./03_router.js')
// 2.注册路由模块 app.use()函数用来注册全局中间件
app.use('/api',router)
app.listen(8080,()=>{
console.log('http://127.0.0.1:8080');
})
子文件:
const express=require('express')
const app=express()
// 1.导入路由模块
const router=require('./03_router.js')
// 2.注册路由模块 app.use()函数用来注册全局中间件
app.use('/api',router)
app.listen(8080,()=>{
console.log('http://127.0.0.1:8080');
})
2创建中间件
中间件是什么?类似于拦截器,可以在请求进入编码位置的时候,先对res对象进行一些处理
怎么用:
1、全局中间件
const express=require('express')
const app=express()
// 定义全局中间件的简化形式
app.use((req,res,next)=>{
// 获取请求到达服务器的事时间
const time=Date.now()
// 为req对象,挂在自定义属性,从而把时间共享给所有路由
req.startTime=time
next()
})
app.get('/',(req,res)=>{
res.send('home page'+req.startTime)
})
app.post('/',(req,res)=>{
res.send('user page'+req.startTime)
})
app.listen(8080,()=>{
console.log('http://127.0.0.1:8080');
})
比较明显看出,对所有的res都会有影响
2、局部处理器
const express=require('express')
const app=express()
// 1.定义局部中间件函数
const mw1=(req,res, next)=>{
console.log('调用了局部生效中间件');
next()
}
// 2.创建路由
// mw1只在第一个app.get()中生效
app.get('/',mw1,(req,res)=>{
res.send('home page')
})
在post或者get请求中间加,就可以多个请求公用一个拦截器了