nodejs/koa中route的全匹配

原创 2016年05月30日 22:53:26

今天遇到一个很严重的bug,原因是我对一个老接口进行重实现,老的服务就不需要了,这样做到资源最大化利用,但是老的服务是nginx层直接处理,没有区分请求方式,所有请求方式都支持,默认是使用了get方式,并且支持jsonp,一般情况下支持jsonp的请求都是get请求,但是客户端接入的时候使用了post方式,而新的服务是只做了支持了get方式,导致上线之后大量报错。

虽然老接口的实现很奇葩,但是已经有很多项目在使用了,让每个项目都修改是不可能的,只能新的服务支持所有的请求方式。

那么问题来了,node中怎么忽略请求方式呢,匹配所有请求方式的请求呢?

新的服务是koa项目,先看看https://github.com/alexmingoia/koa-router官方文档有没有说明,不用说肯定有:

var router = require('koa-router')
router.all('/login', function *() {
  this.redirect('/sign-in');
  this.status = 301;
});

router.all这个方法可以,扩展一下,ES5中的express框架支持吗,google一下,http://expressjs.com/en/guide/routing.html,确实支持:

app.all('/secret', function (req, res, next) {
  console.log('Accessing the secret section ...');
  next(); // pass control to the next handler
});

perfect!顺便提下,rails可以用match方法匹配所有请求方式的请求。


但是这样好不好呢,并不好,一个请求支持所有请求方式会带来很严重的问题,比如跨站请求伪造等等互联网常见的问题,也增加了路由的复杂度,拖慢速度。所以一般情况下不建议这样做。


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

koa 路由入门

1.安装路由组件 npm install koa-route 2. 注册路由 var koa = require('koa'); var route = require('koa...
  • ISaiSai
  • ISaiSai
  • 2015年03月16日 16:27
  • 5494

nodejs学习(8)koa路由的匹配

1、引入所需模块var Koa = require("koa"); var router = require("koa-router")();2、使用方式var app = new Koa(); ap...

nodejs原生,express,koa跨域问题解决

XMLHttpRequest cannot load http://localhost:3000/. No ‘Access-Control-Allow-Origin’ header is presen...

koa学习之路(1)---koa-router中nested router(嵌套路由)的坑

刚刚开始学习Koa框架不久,在使用koa-router路由中间件的时候遇到一个坑,浪费了点时间,必须要做个记录,给后人一个提醒!...

koa-router 路由优先级问题

koa-router 根据定义的顺序,先定义的先被匹配,因此应该讲特殊路由放在前面定义,最后定义通用路由 如下 代码 是个错误的示例,如果访问 http://localhost:3000/xixi ...
  • ISaiSai
  • ISaiSai
  • 2015年08月24日 11:58
  • 4250

Nodejs-Koa是一个干净的框架

1. 关于koa今天学习了plover的底层框架koa。nodejs框架用的最多的是express,社区也最大、资料比较全,简单易上手,所以在我自己写的一个音乐分享的网站中后台框架用的是express...

JS面向对象

js没有类的概念,一切皆对象,实例化和继承也是在对象的基础上实现的。 1、js对象。 js对象分为两种,一种是普通对象,一种是函数对象,区别有几点: 1)、函数对象有prototype属...

nodejs request模块

安装命令:npm install --save request使用简单例子: get方法:var request = require('request'); request('您的请求url', f...

Nodejs koa

  • 2016年10月28日 20:36
  • 7.72MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:nodejs/koa中route的全匹配
举报原因:
原因补充:

(最多只允许输入30个字)