Express路由规则

Express是基于Node.js的十分优秀的开发框架,本篇将介绍Express的基本用法及规则。
  • express 封装了多种 http 请求方式,主要有get和post方法,app.all 可以获取所有请求方式,回调函数有两个参数分别是 req和 res,代表请求信息和响应信息。

get过来的参数: querystring + cookie
post过来的参数: querystring + cookie + formdata + request payload

querystring: 
//获取url中的?后面的值,得到对象
执行方式:req.query

params
//处理 /:xxx 形式的 get 请求
执行方式:req.params
cookie:
//获取的是cookie值,处理 get 请求
执行方式::req.cookies 
注:cookie要用到 cookie-parser工具

formdata:
//获取到formdata中的信息,处理post请求
执行方式:req.body

request payload:
//获取到request payload的值
执行方式:req.body

req.param()
注: 可以处理 get 和 post 请求,但查找优先级由高到低为req.params→req.body→req.query
例如:
router.get('/get', (req, res, next) => {
    console.log(req.querystring)
})
//这时控制台就会得到用户的?后面的信息

在url中输入的地址应该为:http://localhost:3000/get?a=1&b=2
控制台返回的就是:{a:1,b:2}

1.*通配符url
app.get('/test/*',function(req,res){
    res.send(req.originalUrl);//req.originalUrl获取当前URL
});

 // *号可以通配URL为localhost:3000/test/XXX的任意url
2./:id的占位标识符url
router.get('/t-shirt/:id', (req, res, next) => {
    console.log(req.params)
    res.json({
        data: {
            title: `这是第${ req.params.id }个T恤衫`
        }
    })
})

//在url的:id处输入任意的内容,就会在下面:id处替换成相应的值
3…next()权限控制转移
  • express的路由控制有个next()功能,在定义了多个路由的时候,使用next对匹配的url会按顺序执行,如果不使用next进行权限转移,只会执行第一个满足的路由规则。

app.get('/test/*',function(req,res,next){

    //res.send("userid:");//要进行转移,不要响应客户端

req.temp="给你控制权";

    next(1);
    //把权限转移到下一个路由,next也可以带参数传向下一个get操作,
   // 左后在send中可以累积的响应到客户端

});

app.get('/test/next',function(content,req,res){

    res.send("content: "+req.temp);

})

//注意:此处的send只能在一个res中出现,否则会报错,如果有多的get步骤的话,可以在每个里面都可//以带上next()以保证继续向下运行,如果没有next那就会停止执行。

//next()一般用来编写中间件
//中间件一般不直接对客户端进行响应,而是对请求进行一些预处理,再传递下去;
//中间件一般会在路由处理之前执行;
  • 路由的匹配是模糊匹配的,如果get的第一个参数为“/”,那带/的所有的操作都执行
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值