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 篇



回到顶部