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) -用户定义路由的更多相关文章

  1. Flask之基于route装饰器的路由系统(源码阅读解析)

    一 路由系统 1. 在flask中配置URL和视图函数的路由时,首先需要在main.py中实例化一个app对象: from flask import Flask, render_template ap ...

  2. ASP.NET Web API实践系列04,通过Route等特性设置路由

    ASP.NET Web API路由,简单来说,就是把客户端请求映射到对应的Action上的过程.在"ASP.NET Web API实践系列03,路由模版, 路由惯例, 路由设置"一 ...

  3. 07:vue定义路由

    1.1 定义路由 1.说明 1. 路由是单页面应用程序(SPA)的关键,Vue提供过来路由插件,使用这个路由就要安装这个插件 2. 安装: npm install vue-router 3. 依赖于v ...

  4. 初学node.js-nodejs中实现用户登录路由

    经过前面几次的学习,已经可以做下小功能,今天要实现的事用户登录路由. 一.users_model.js  功能:定义用户对象模型 var mongoose=require('mongoose'), S ...

  5. SQL SERVER中用户定义标量函数(scalar user defined function)的性能问题

    用户定义函数(UDF)分类  SQL SERVER中的用户定义函数(User Defined Functions 简称UDF)分为标量函数(Scalar-Valued Function)和表值函数(T ...

  6. 应用C#和SQLCLR编写SQL Server用户定义函数

    摘要: 文档阐述使用C#和SQLCLR为SQL Server编写用户定义函数,并演示用户定义函数在T-SQL中的应用.文档中实现的 Base64 编码解码函数和正则表达式函数属于标量值函数,字符串分割 ...

  7. SQL——用户定义函数

    根据用户定义函数返回值的类型,可将用户定义函数分为如下三个类别: (1) 返回值为可更新表的函数 若用户定义函数包含单个 SELECT 语句且该语句可更新,则该函数返回的表也可更新,这样的函数称为内嵌 ...

  8. JMeter学习-014-JMeter 配置元件实例之 - 用户定义的变量 参数化配置

    前文讲述了通过 CSV Data Set Config 实现参数化配置(详情敬请参阅:JMeter学习-010-JMeter 配置元件实例之 - CSV Data Set Config 参数化配置), ...

  9. Sql server 浅谈用户定义表类型

    1.1 简介 SQL Server 中,用户定义表类型是指用户所定义的表示表结构定义的类型.您可以使用用户定义表类型为存储过程或函数声明表值参数,或者声明您要在批处理中或在存储过程或函数的主体中使用的 ...

随机推荐

  1. 怎样实时判断socket连接状态?

    对端正常close socket,或者进程退出(正常退出或崩溃),对端系统正常关闭 这种情况下,协议栈会走正常的关闭状态转移,使用epoll的话,一般要判断如下几个情况 处理可读事件时,在循环read ...

  2. VB.NET & 策略模式(下机用户类型选择)

    上篇文章讲述了对于下机操作和基本数据设定的时间联系,今天主要就是应用"策略模式"来了解了解对于固定用户,以及暂时用户之间的选择,看学习设计模式的时候自己对于策略模式的理解,我们能够 ...

  3. 通过Hadoop安全部署经验总结,开发出以下十大建议,以确保大型和复杂多样环境下的数据信息安全。

    通过Hadoop安全部署经验总结,开发出以下十大建议,以确保大型和复杂多样环境下的数据信息安全. 1.先下手为强!在规划部署阶段就确定数据的隐私保护策略,最好是在将数据放入到Hadoop之前就确定好保 ...

  4. 分享在github超酷超炫特效动画,不看你会懊悔的。

    有图有真相直接上效果图,有须要的朋友们能够到连接上去下载. 下载地址:https://github.com/ChrisRenke/DrawerArrowDrawable 下载地址:https://gi ...

  5. c# http请求添加cookie

    CookieCollection cookList = new CookieCollection(); cookList.Add(new Cookie("cf_clearance" ...

  6. Yii2发送邮箱总结

    修改配置文件,普通版在(config/web.php).高级版默认配置在/common/config/main-local.php 'components' => [ 'mailer' => ...

  7. CAEmitterCell 和 CAEmitterLayer具体解释

    一.在 UIKit 中,粒子系统由两部分组成: 1·      一个或多个  CAEmitterCells :发射器电池能够看作是单个粒子的原型(比如,一个单一的粉扑在一团烟雾).当散发出一个粒子,U ...

  8. Spring_day02--AOP概念、原理、操作术语

    AOP概念 hibernate要手动进行事务操作,在spring中通过配置文件来配置事务 1 aop:面向切面(方面)编程,扩展功能不修改源代码实现 2  AOP采取横向抽取机制,取代了传统纵向继承体 ...

  9. 剑指 offer set 25 求 1+2+...+n

    题目 要求不能使用乘除法, for, while, if else, switch, case 等关键字 思路 1. 循环已经命令禁止, 禁用 if, 意味着递归也不能使用. 但即便如此, 我们仍然要 ...

  10. ArcGIS GP应用-GP模型创建-缓冲区分析

    一.参考资料 http://www.cnblogs.com/HPhone/archive/2012/11/05/2755974.html 二.关键步骤 1.缓冲分析数据源可以选择:点.面.线 2.构建 ...