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 中,用户定义表类型是指用户所定义的表示表结构定义的类型.您可以使用用户定义表类型为存储过程或函数声明表值参数,或者声明您要在批处理中或在存储过程或函数的主体中使用的 ...
随机推荐
- 亿级Web系统的容错性建设实践(转)
三年多前,我在腾讯负责的活动运营系统,因为业务流量规模的数倍增长,系统出现了各种各样的异常,那个时候,我7*24小时地没日没夜处理告警,周末和凌晨也经常上线,疲于奔命.后来,当时的老领导对我说:你不能 ...
- 网卡优化RPS/RFS
网卡优化 RSS receive side scaling,网卡多队列,需要硬件支持.网卡接收到网络数据包后,要发送一个硬件中断,通知CPU取数据包.默认配置,都是由CPU0去做. RPS recei ...
- setTranslatesAutoresizingMaskIntoConstraints和setFrame组合使用导致的异常
在用Ojbect-c开发OSX应用的时候需要用到自定义控件并用代码进行布局,很自然地就使用了setTranslatesAutoresizingMaskIntoConstraints和setFrame组 ...
- (转)java泛型
转自:http://blog.csdn.net/lonelyroamer/article/details/7868820 java泛型(二).泛型的内部原理:类型擦除以及类型擦除带来的问题 参考:j ...
- Spring Cache 自定义注解
1.在使用spring cache注解如cacheable.cacheevict.cacheput过程中有一些问题: 比如,我们在查到一个list后,可以将list缓存到一个键对应的区域里:当新增.修 ...
- Numpy库解析
python中的axis 其实问题理解axis有问题,df.mean其实是在每一行上取所有列的均值,而不是保留每一列的均值.也许简单的来记就是axis=0代表往跨行(down),而axis=1代表跨列 ...
- Hibernate_day01--课程安排_Hibernate概述_Hibernate入门
Hibernate_day01 Hibernate课程安排 今天内容介绍 WEB内容回顾 JavaEE三层结构 MVC思想 Hibernate概述 什么是框架 什么是hibernate框架(重点) 什 ...
- 如何用C语言读写文件
#include "stdio.h"#include <stdlib.h> main(){ FILE *fp1;//定义文件流指针,用于打开读取的文件 FILE *fp ...
- Linux命令之乐--curl
参数: -I 获取头部信息 -s/--silent Silent mode. Don't output anything 沉默模式 --connect-timeout <secon ...
- C#三种字符串拼接方法的效率对比
C#字符串拼接的方法常用的有:StringBuilder.+.string.Format.List<string>.使用情况不同,效率不同. 1.+的方式 string sql = &qu ...