Express路由路径匹配规则以及第三方包模块cors

  • 路由匹配规则
    1. 路径规则(中间件路径也适用)
      1.1. 字符串的规则
      固定路径(常规的用法)
      /index和/index/都可以访问到,其他的/index/aa就不会访问到该路由
app.get('/index', (req, res) => {
   res.send('/index')
})

1.2. 通配符匹配
通配符匹配其实跟中间件不加路径使用效果是一样的,表示所有路由都可以匹配成功。

app.get('*', (req, res) => {
  res.send('*')
})

1.3. 固定路径与通配符组合使用
固定路径与通配符组合使用的话表示固定路径之后的任意路由都可以匹配成功。
/index/以及/index/1等路由均可以匹配得到

app.get('/index/*', (req, res) => {
  res.send('/index/*')
})
  • 第三方包模块cors

安装

$ npm install cors

当使用中间件app.use(cors())全局挂载的时候,那么所有的接口均解决了跨域。因为每次进入一次路由,就会从上面走一遍,因而就会执行到app.use(cors()),所以并不是理论上的app.use(cors())让所有的接口解决跨域,只是产生的效果是等价的

var express = require('express')
var cors = require('cors')
var app = express()
 
app.use(cors())
 
app.get('/products/:id', function (req, res, next) {
  res.json({msg: 'This is CORS-enabled for all origins!'})
})
 
app.listen(80, function () {
  console.log('CORS-enabled web server listening on port 80')
})

如果只希望某一个接口处理跨域,那么需要单独的加在接口请求中

app.get('/products/:id', cors(), function (req, res, next) {
  res.json({msg: 'This is CORS-enabled for a Single Route'})
})
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容