文章目录
  1. 1. 全局下安装Sails
  2. 2. 在空路径下,新建一个项目
  3. 3. 运行
  • 项目架构
    1. 1. RESTful routes
    2. 2. Shortcut routes
    3. 3. Action routes
  • 参考文档
  • 全局下安装Sails

    1
    sudo npm install sails -g

    在空路径下,新建一个项目

    1
    sails new newApp

    运行

    1
    sails lift

    项目架构

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    ├── api    
    │ ├── controllers
    │ │ 控制层,该层是Http请求的入口
    │ │ sails官方建议该层只处理请求的转发和页面的渲染,
    │ │ 具体的逻辑实现应该交给Service层.
    │ │
    │ ├── models
    │ │ 模型层
    │ │
    │ ├── policies
    │ │ 过滤层,该层在Controller层之前对Http请求做处理
    │ │ 在这一层中,可以定于一些规则来过滤Http请求,
    │ │ 比如身份认证什么的.
    │ │
    │ ├── responses
    │ │
    │ │ http响应的方法都放这里
    │ │ 例如服务器错误、请求错误、404错误等
    │ │ 定义在responses文件夹里面的方法,
    │ │ 都会赋值到controller层的req对象中
    │ │
    │ │
    │ └── services
    │ 服务层,该层包含逻辑处理的方法
    │ 所有Service都可以全局性访问

    ├── views
    │ 视图层,存放视图模版文件的地方

    ├── assets
    │ 资源文件夹
    │ 在Sails启动的时候,
    │ 会启动某一个Grunt任务,
    │ 把assets文件夹里的内容或压缩或编译
    │ 或复制到根目录下的.tmp目录

    ├── config
    │ │ 配置文件夹
    │ │ 访问方法 sails.config.XXX
    │ │
    │ ├── adapters.js
    │ │ 本地数据库配置
    │ │
    │ ├── csrf.js
    │ │ 跨域加密
    │ │
    │ ├── session.js
    │ │ session配置
    │ │
    │ ├── routes.js
    │ │ routes路由配置
    │ │
    │ ├── env 在实际开发中,常配置数据库等信息
    | │ │
    │ | └── development.js
    | │ │
    │ | └── production.js
    │ │
    │ └── cors.js
    │ 跨域配置

    ├── tasks
    │ Grunt的配置和任务注册

    ├── node_modules
    ├── package.json
    ├── Gruntfile.js
    ├── README.md
    └── app.js

    同时创建model和对应的Controller的命令

    1
    sails generate api API_NAME

    Sails中的路由: blueprint

    RESTful routes

    当路径诸如:/:modelIdentity 或者 /:modelIdentity/:id的时候,blueprint会根据HTTP的动作(GET、POST、DELETE、PUT等)来分配到相应的Controller下相应的Action来处理。例如一个POST请求/user会创建一个用户,一个DELETE请求/user/123会删除id为123的用户。

    Shortcut routes

    生产环境下需要关闭

    Action routes

    这种路由会自动的为Controller层的每一个Action创建一个路由,例如你的Controller层有一个FooController.js,里面有一个Actionbar,那么请求/foo/bar就会分配到barAction。

    当然Sails也会提供自定义的路由,用户可以在config/routes.js和config/polices.js这两个配置文件中选择关闭或者打开blueprint提供的路由,和定义自己的路由。

    参考文档


    文章若有纰漏请大家补充指正,谢谢~~
    http://blog.xinshangshangxin.com SHANG殇

    文章目录
    1. 1. 全局下安装Sails
    2. 2. 在空路径下,新建一个项目
    3. 3. 运行
  • 项目架构
    1. 1. RESTful routes
    2. 2. Shortcut routes
    3. 3. Action routes
  • 参考文档