express路由的理解

捣鼓nodejs有段时间了,写点东西吧!
下面是本人的一点拙见,好吧切入正题。

本例使用sonde的 routes和另外一位兄弟(willerce)的routes来说明

1. 请求会从你的routes列表中由上之下依次去匹配直到找到相应的route直到404 not found
在snode开头中有这么一行

# 配置session 页面中使用 user 获取
# app.all '*', index.auth

* 这段代码曾经在snode-test中使用对session和用户cookie处理详情请见index.js 

这里会拦截所有的请求,哪怕是public下的css,js(这也说明静态文件其实也是占用了一个路由的)

snode路由底部

###
page note Found
###
app.get '*', (req, res, next) ->
  if /.*\.(gif|jpg|jpeg|png|bmp|js|css|html).*$/.test req.originalUrl
        next()
  else  
      res.render 'error/404'
由于前面没处理静态文件这里被再次拦截


2. 灵活的使用app.all过滤请求
曾经看到willerce对后台的过滤部分

app.get('/admin/post', admin.auth_user, admin.postIndex);
app.get('/admin/post/write', admin.auth_user, admin.postWrite);
app.post('/admin/post/write', admin.auth_user, admin.postWrite);
......
表示不淡定了
去查找了express文档发现app.all这个东西
中文文档app.all这里的翻译狠到位,强赞!

snode中权限部分的拦截简单明了

app.all '/admin/*', adminLogin.auth
大过年的真是没心思上班啊,有木有!我在这`提钱`祝大家新年快乐!


捐助共勉
版权声明:若无特殊注明,本文皆为原创,转载请保留文章出处。