Skip to content
This repository has been archived by the owner on Feb 19, 2021. It is now read-only.

对注册的一系列express路由进行排序,避免冲突

License

Notifications You must be signed in to change notification settings

leizongmin/node-lei-routes-sort

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

只需要增加两行代码,轻松解决路由冲突!

当你注册路由顺序为

  • /hello/:name
  • /hello/world

那么, /hello/world 基本上不会执行了,因为 /hellp/:name 已经覆盖了它。

这个模块可以使你不用担心顺序问题,它会自动帮你调整为

  • /hello/world
  • /hello/:name

安装模块:

$ npm install lei-routes-sort

使用方法:

var router = require('lei-routes-sort').create();

// 像express那样注册路由
router.get('/hello/world', function (req, res, next) { });
router.get('/hello/nodejs', function (req, res, next) { }, function (req, res, next) { });

// 如果你是自动注册路由,为了方便出错时知道是哪个文件,可以这样:
var file1 = router.file('routes/file1.js');
// 还是一样的方法注册路由
file1.get('/hello/file1', function (req, res, next) { });

// 最后,整理一下路由顺序,注册到express中
var app = express();
router.register(app);

原理:

  • 对path的调整: string > :param > *
  • 对请求方法的调整: all放在最后,其他不变
  • 不允许有两个完全相同的路由

About

对注册的一系列express路由进行排序,避免冲突

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published