Fork me on GitHub

After code
  • Geeker
  • Gamer
  • JS
  • C
  • Node
  • React
  • Hippop
  • TDD
That Is An Byte of Me

[afterCode]sort the expresse router, please

26 Oct 2015

a very stupid Bug

var bugRouter = express.Router()

var helloAll = function (req, res) {
  res.send(req.params.name)
}
var helloBaby = function (req, res) {
  res.send('you are always my baby')
}

bugRouter.get('/hello/:name', helloAll)
bugRouter.get('/hello/baby', helloBaby)

app.use(bugRouter)
$curl 127.0.0.1:3000/hello/baby
baby

显然你想调用 helloBaby, 但是因为路由书写的顺序,让helloAll先截获了请求

Sublime Text中的解决

  1. 选中需要排序的路由行
  2. Edit -> Sort Lines(Case Sensitive)
  3. Edit -> Permute Line -> Reverse

如此折腾之后,路由信息就能按照我的预期来了。当项目中路由配置很多的时候,这个小技巧还是很有用的。

分享到: QQ空间 新浪微博 腾讯微博 微信 更多
comments powered by Disqus