sails route(1) -用户定义路由
sails支持两种类型的路由: custom(or "explicit") andautomatic(or "implicit").
先来看一下custom 即用户定义路由吧,以下是学习笔记。
用户定义路由
在config/routes.js中定义如下类似的路由:
module.exports.routes={
'get/signup': { view: 'conversion/signup' },
'post /signup':'AuthController.processSignup',
'get/login': { view: 'portal/login' },
'post /login':'AuthController.processLogin',
'/logout':'AuthController.logout',
'get /me':'UserController.profile'
}
有的将url指向某个controller的action,有的则将url指向某个view
甚至还可以在路由中指定view使用的layout
'get /privacy': {
view:'users/privacy',
locals: {
layout:'users'
}
},
语法规则:
1.每个路由都必须包含地址和目标
'GET /foo/bar':'FooController.bar'
^^^address^^^^^^^^^^target^^^^^^^
2.地址定义:
a.使用通配符和动态参数
比如:
'/user/foo/*'
'/user/foo/:name/bar/:age'
'/user/foo/*/bar/*'
b.正则表达式
"r||
list of param names>"
比如:
"r|^/\\d+/(\\w+)/(\\w+)$|foo,bar":"MessageController.myaction"
Will
match/123/abc/def, running themyactionaction ofMessageControllerand supplying the valuesabcanddefasreq.param('foo')andreq.param('bar')
c.路由地址匹配的顺序
按照routes.js中的书写顺序进行匹配,一旦匹配成功,便不会再往下继续寻找(有高级的方法可以改变该规则,但不推荐)
3.路由目标定义
a. controller/action的语法规则:
'GET /foo/go':'FooController.myGoAction',
'GET /foo/go':'Foo.myGoAction',
'GET /foo/go': {controller:"Foo", action:"myGoAction"},
'GET /foo/go': {controller:"FooController", action:"myGoAction"},
以上四种写法等价。
需要注意的是,controller和action的名字是大小写敏感的。
b.view目标的语法规则:
'GET /team': {view:'brochure/about'}
c. Blueprint目标的语法规则
'GET /findAllUsers': {model:'user', blueprint:'find'},
'GET /user/findAll': {blueprint:'find'}
'GET /user/findAll': {blueprint:'find', model:'pet'}
4.定义重定向(redirect)
'/alias' :'/some/other/route'
'GET /google':'http://www.google.com'
5.定义response
'/foo': {response:'notFound'}
6.function定义
路由可以直接指向某个function
'/foo':function(req, res) {res.send("FOO!");}
7.Policy target syntax
路由可以为target指定policy,即在达到指定target时,必须先通过某个policy
'/foo': [{policy:'myPolicy'}, {blueprint:'find', model:'user'}]
sails route(1) -用户定义路由的更多相关文章
- Flask之基于route装饰器的路由系统(源码阅读解析)
一 路由系统 1. 在flask中配置URL和视图函数的路由时,首先需要在main.py中实例化一个app对象: from flask import Flask, render_template ap ...
- ASP.NET Web API实践系列04,通过Route等特性设置路由
ASP.NET Web API路由,简单来说,就是把客户端请求映射到对应的Action上的过程.在"ASP.NET Web API实践系列03,路由模版, 路由惯例, 路由设置"一 ...
- 07:vue定义路由
1.1 定义路由 1.说明 1. 路由是单页面应用程序(SPA)的关键,Vue提供过来路由插件,使用这个路由就要安装这个插件 2. 安装: npm install vue-router 3. 依赖于v ...
- 初学node.js-nodejs中实现用户登录路由
经过前面几次的学习,已经可以做下小功能,今天要实现的事用户登录路由. 一.users_model.js 功能:定义用户对象模型 var mongoose=require('mongoose'), S ...
- SQL SERVER中用户定义标量函数(scalar user defined function)的性能问题
用户定义函数(UDF)分类 SQL SERVER中的用户定义函数(User Defined Functions 简称UDF)分为标量函数(Scalar-Valued Function)和表值函数(T ...
- 应用C#和SQLCLR编写SQL Server用户定义函数
摘要: 文档阐述使用C#和SQLCLR为SQL Server编写用户定义函数,并演示用户定义函数在T-SQL中的应用.文档中实现的 Base64 编码解码函数和正则表达式函数属于标量值函数,字符串分割 ...
- SQL——用户定义函数
根据用户定义函数返回值的类型,可将用户定义函数分为如下三个类别: (1) 返回值为可更新表的函数 若用户定义函数包含单个 SELECT 语句且该语句可更新,则该函数返回的表也可更新,这样的函数称为内嵌 ...
- JMeter学习-014-JMeter 配置元件实例之 - 用户定义的变量 参数化配置
前文讲述了通过 CSV Data Set Config 实现参数化配置(详情敬请参阅:JMeter学习-010-JMeter 配置元件实例之 - CSV Data Set Config 参数化配置), ...
- Sql server 浅谈用户定义表类型
1.1 简介 SQL Server 中,用户定义表类型是指用户所定义的表示表结构定义的类型.您可以使用用户定义表类型为存储过程或函数声明表值参数,或者声明您要在批处理中或在存储过程或函数的主体中使用的 ...
随机推荐
- 怎样实时判断socket连接状态?
对端正常close socket,或者进程退出(正常退出或崩溃),对端系统正常关闭 这种情况下,协议栈会走正常的关闭状态转移,使用epoll的话,一般要判断如下几个情况 处理可读事件时,在循环read ...
- VB.NET & 策略模式(下机用户类型选择)
上篇文章讲述了对于下机操作和基本数据设定的时间联系,今天主要就是应用"策略模式"来了解了解对于固定用户,以及暂时用户之间的选择,看学习设计模式的时候自己对于策略模式的理解,我们能够 ...
- 通过Hadoop安全部署经验总结,开发出以下十大建议,以确保大型和复杂多样环境下的数据信息安全。
通过Hadoop安全部署经验总结,开发出以下十大建议,以确保大型和复杂多样环境下的数据信息安全. 1.先下手为强!在规划部署阶段就确定数据的隐私保护策略,最好是在将数据放入到Hadoop之前就确定好保 ...
- 分享在github超酷超炫特效动画,不看你会懊悔的。
有图有真相直接上效果图,有须要的朋友们能够到连接上去下载. 下载地址:https://github.com/ChrisRenke/DrawerArrowDrawable 下载地址:https://gi ...
- c# http请求添加cookie
CookieCollection cookList = new CookieCollection(); cookList.Add(new Cookie("cf_clearance" ...
- Yii2发送邮箱总结
修改配置文件,普通版在(config/web.php).高级版默认配置在/common/config/main-local.php 'components' => [ 'mailer' => ...
- CAEmitterCell 和 CAEmitterLayer具体解释
一.在 UIKit 中,粒子系统由两部分组成: 1· 一个或多个 CAEmitterCells :发射器电池能够看作是单个粒子的原型(比如,一个单一的粉扑在一团烟雾).当散发出一个粒子,U ...
- Spring_day02--AOP概念、原理、操作术语
AOP概念 hibernate要手动进行事务操作,在spring中通过配置文件来配置事务 1 aop:面向切面(方面)编程,扩展功能不修改源代码实现 2 AOP采取横向抽取机制,取代了传统纵向继承体 ...
- 剑指 offer set 25 求 1+2+...+n
题目 要求不能使用乘除法, for, while, if else, switch, case 等关键字 思路 1. 循环已经命令禁止, 禁用 if, 意味着递归也不能使用. 但即便如此, 我们仍然要 ...
- ArcGIS GP应用-GP模型创建-缓冲区分析
一.参考资料 http://www.cnblogs.com/HPhone/archive/2012/11/05/2755974.html 二.关键步骤 1.缓冲分析数据源可以选择:点.面.线 2.构建 ...