node.js Sails 学习文档 model 篇

sails.jpg


文章目录



sails安装

npm install -g sails


sails创建新项目

sails new test


sails目录结构



test

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'}
    }

出自:node.js Sails 学习文档 model 篇

回到顶部