express 路由控制
2013-02-26 21:32
155 查看
next()
express的路由控制有个next()功能,在定义了多个路由的时候,对匹配的url会按顺序执行,
例如,有这样两个路由,第一个路由会对满足“/”的地址,在req中添加一个user的属性,然后再交给接下去的路由处理
所以当访问....../user时,可以从req中取出user信息
用这种方式,可以对满足某一条件的url地址,先做一些处理(比如加载用户信息之类的),然后再转交给更具体的路由处理
路由中间件
与此功能类似的,还有路由中间件的功能,
一个路由中可以添加一个或者多个回调函数,如
这个路由添加了3个处理函数,会按顺序执行
loadUser可以是形如这样的处理函数
这样就能将多个路由都需要用到的处理提取出来,写成单独的函数,或者用来提前做一些条件判断
其他:
express的use()功能在api中的定义是app.use([path],function),
不指定path的情况下,对应的是默认的'/',
当指定path时,会对匹配的url进行处理,
但是这里的path貌似不能像get、all那样进行正则匹配
参考:
http://www.csser.com/board/4f77e6f996ca600f78000936#/post/4f77ea1cbe3baa0d7800153c
http://expressjs.com/api.html
express的路由控制有个next()功能,在定义了多个路由的时候,对匹配的url会按顺序执行,
例如,有这样两个路由,第一个路由会对满足“/”的地址,在req中添加一个user的属性,然后再交给接下去的路由处理
所以当访问....../user时,可以从req中取出user信息
app.get(/^\/*/,function(req, res, next){ req.user ="shuilan"; next(); // 将控制转向下一个符合URL的路由 }); app.get('/user', function(req, res){ res.send('viewing ' + req.user); });
用这种方式,可以对满足某一条件的url地址,先做一些处理(比如加载用户信息之类的),然后再转交给更具体的路由处理
路由中间件
与此功能类似的,还有路由中间件的功能,
一个路由中可以添加一个或者多个回调函数,如
app.get('/user/:id/edit', loadUser, andRestrictToSelf, function(req, res){ res.send('开始编辑用户 ' + req.user.name); });
这个路由添加了3个处理函数,会按顺序执行
loadUser可以是形如这样的处理函数
function loadUser(req, res, next) { // 这里提供假数据,你可以从数据库中获取真实用户信息 var user = users[req.params.id]; if (user) { req.user = user; next(); } else { next(new Error('不存在的用户 ' + req.params.id)); } }
这样就能将多个路由都需要用到的处理提取出来,写成单独的函数,或者用来提前做一些条件判断
其他:
express的use()功能在api中的定义是app.use([path],function),
不指定path的情况下,对应的是默认的'/',
当指定path时,会对匹配的url进行处理,
但是这里的path貌似不能像get、all那样进行正则匹配
参考:
http://www.csser.com/board/4f77e6f996ca600f78000936#/post/4f77ea1cbe3baa0d7800153c
http://expressjs.com/api.html
相关文章推荐
- 路由控制器Express的路由控制方法
- [转]express 路由控制--next
- 【我的笔记BLOG3】Express基本用法,和路由控制,和模板渲染ejs
- Node.js进行Web开发(一)--Express,路由控制,模板引擎
- express 路由控制
- 一:express框架学习之路由控制与中间件
- express-session实现登录控制
- nodejs开发 express路由与中间件
- linux 高级路由及流量控制总结
- Express的路由详解
- laravel5.0 view层页面之间的跳转流程[通过route路由控制]
- Node+Express的跨域访问控制问题:Access-Control-Allow-Origin
- node入门(五) - express(中间件,路由,文件上传,虚拟主机)
- vue-router路由懒加载和权限控制详解
- Node+Express的跨域访问控制问题:Access-Control-Allow-Origin
- React从react-router路由上做登陆验证控制的方法
- 装饰器实现路由控制
- web框架开发-路由控制
- china-ccie IGP路由控制方法的思考
- asp.net mvc修改默认路由(刚刚运行进入那个页面由你控制)