技术学习文档

学习文档

标签(空格分隔): sails 学习


sails安装

npm install -g sails

sails创建新项目

sails new test

sails目录结构


test

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
api
controllers(控制器相关,业务逻辑)
models(模块开发)
policies(用于路由过滤)
responses(定制所需的响应:如404 res.notFound())
services(定制一些常用的工具类–全局的)
assets(静态资源文件)
images
js
styles
templates
favicon.ico
config(整个项目的配置文件系统)
env (配置不同环境的变量)
locales (全球化目录)
*.js
tasks
views

sails是一个典型的MVC模式,所以我们先从Model来入手:

model篇

model定义了数据模型,数据结构,一般需要定义对应的controller


比如我们定义一个user相关的模型

module.exports={
​ attributes:{
​ username:{
​ type:’string’,
​ required:true
​ },
​ password:{
​ type:’string’,
​ required:true
​ }
​ }
}

attributes

定义模型的属性及属性类型
包括的类型有:
string,text,integer,float,date,datetime,boolean,binary,array,json,email 等.

attributes 相关的几个特殊属性:

  1. primaryKey:数据库主键,尽量在autoPK设置为false才使用
    如:attributes:{
    ​ uuid:{
    ​ type:’string’,
    ​ size:24,
    ​ primaryKey:true,
    ​ required:true
    ​ }
    }
  2. enum 数组类型,指定value必须是数组中某一个元素
    如:attributes:{
    ​ state:{
    ​ type:’string’,
    ​ enum:[‘success’,’error’,’wronging’],
    ​ required:true
    ​ }
    }
  3. sails指定字段可以和数据库不一致,columnName 为数据库中的字段名
    如:attributes:{
    ​ type:’string’,
    ​ required:true,
    ​ columnName:’name’
    }
  4. 指定最小长度 minLength
    如:attributes:{
    ​ type:’string’,
    ​ defaultsTo:’123456’,
    ​ minLength:6,
    ​ required:true
    }
  5. 指定自增长字段 autoIncrement ,一般搭配 unique使用(唯一字段)
    如:{
    ​ type:’integer’,
    ​ autoIncrement:true,
    ​ unique:true,
    ​ required:true
    }
  6. 关联其他 model
    如:{
    ​ spouse:{model:’Person’}
    }