欢迎光临
我们一直在努力

Express.01 路由基础

文章目录

express 路由简介

路由表示应用程序端点(URI)的定义以及相应客户端请求的方式,它包含一个请求方式、路径和匹配的函数。

app.get('/home',(res,req,next)=>{})

express 路由方法

express支持众多常见的路由方法。

app.get('/',(res,req)=>{})
app.post('/',(res,req)=>{})
app.put('/',(res,req)=>{})
app.delete('/',(res,req)=>{})

express 路径

express支持三种模式的路径:字符串、字符串模式、正则表达式

字符串匹配

  • 下面路径将与 /login 匹配
app.get('/login',()=>{})

字符串模式路径

类字符串的正则模式,使用的是正则的规则。

  • 下面路径将匹配 /abcd 或 /acd
  • ?代表一个或零个
app.get('/ab?cd',()=>{})
  • 下面路由将匹配 /abcd /abbcd /abbbcd等
  • +代表一个或多个
app.get('ab+cd',()=>{})
  • 下面路径将匹配 /abcd /abxxxxcd 等
  • *代表任意字符串
app.get('ab*cd',()=>{})

正则表达式路径

  • 利用正则表达式匹配路径,如下面的示例
app.get(/\a\d{10,20}/,(req,res)=>{})

动态路由

路由参数命名为URL段,用于捕获URL在其位置指定的值。捕获的值填充到req.params中,并将路径中指定的router参数作为其各自的键。

示例

Router path: /user/:userName/books/:bookId
Request URL: http://localhost:3000/users/sr/books/20
req.params: {"userName":"sr","bookId":"20"}

使用

app.get('/user/:userName/books/:bookId',(req,res)=>{
    res.send(req.params)
})

路线处理程序

同一个路由,可以由多个回调函数,层层处理,需要有一个next( )

app.get('/',(req,res,next)=>{
    next()
},(req,res)=>{
    res.send('hello')
})

请求与相应

Request

req对象代表一个HTTP请求,其具有一些属性来保存请求中的一些数据。

  • req.params 动态路由中的参数,默认为{ }
  • req.body 通常用于获取POST请求提供的参数(需要body-parser解析)默认为undefined
  • req.query 通常用于获取GET请求提供的参数
  • req.cookies 通常用于获取请求发送来的cookies 需要cookie-parser中间件解析
  • req.route 当前匹配的路由 字符串

Response

Response代表当HTTP请求到来时,express作出的响应。

  • res.send( ) 可以发送任意类型数据(Buffer/Json/HTML)send()会自动设置对应的响应头
  • res.end( ) 结束本响应的过程,没有任何数据返回
  • res.redirect( [status], path ) 重定向来源指定的URL(也可以是完整的其他站点路径),以及指定HTTP status codestatus,若不指定,默认为302 Found
  • res.download( ) 提示要下载的文件
  • res.json( ) 发送JSON响应
  • res.jsonp( ) 发送带有JSONP支持的JSON响应
  • res.render( ) 渲染试图模板
  • res.sendFile( ) 将文件作为八位字节发送
  • res.sendStatus( ) 设置相应状态码,并将其字符串表示形式发送为响应正文
赞(0) 打赏
未经允许不得转载:散人研 » Express.01 路由基础
分享到: 更多 (0)

评论 抢沙发

7 + 4 =
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏