早上拔完牙麻药劲还没过呢,就开始下面的Node.js,一点舍不得休息,这也是我听得迷迷糊糊,但上课该记的一点都不耽误,晚上得重新在看一遍视频了,在把该敲的代码在过一遍,Nl
传参方式 | 格式 | 路由中获取 |
---|---|---|
get传递 | http://127.0.0.1:8080/mysearch?keyword=笔记本 | req.query{keyword:'笔记本'} |
路由传参 | http://127.0.0.1:8080/package/express | req.params{pname:express} |
post传递 | 以流的形式,URL不可见传递大的文件(数据) | 通过事件获取req.on('data', (c)=>{ c获取的参数,格式为buffer c.toString() 转为字符串 user=tao&pwd=123456 需要转为对象}) |
一.路由器
路由器是用来管理路由,最终路由器被WEB服务器使用
每个路由器是一个自定义模块
使用步骤:
路由器
//引入express
const r=express.Router();//创建路由器对象
//往路由器添加路由
module.exports=r; //暴露(导出)路由器对象
web服务器
//使用路由器,添加前缀
app.use( 添加的前缀, 引入的路由器 )
二.中间件
拦截对WEB服务器的请求
分为应用级中间件、路由级中间件、内置中间件、第三方中间件、错误处理中间件
1.应用级中间件
也称为自定义中间件,一旦拦截到请求,自动调用函数
unction fn(req,res,**next**){
next() //往后执行下一个中间件或者路由
}
app.use( 要拦截的URL, fn )
2.路由级中间件
路由器的使用
app.use(要拦截的URL, 路由器)
3.内置中间件
静态资源:包括html,css,js,图形,视频,声音...
托管静态资源:客户端请求静态资源,不需要通过路由响应,而是自动查找资源
app.use( express.static(托管的目录) )
4.将post传递的参数转为对象
app.use( express.urlencoded({
extended: false
//是否使用扩展的qs转为对象 true->使用 false->不适用
}) );
路由获取
req.body