node.js Sails 学习文档 model 篇
--> -->
文章目录
sails安装
sails创建新项目
sails目录结构
test
model篇
比如我们定义一个user相关的模型
- attributes
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 相关的几个特殊属性:
- primaryKey:数据库主键,尽量在autoPK设置为false才使用
如:attributes:{
uuid:{
type:'string',
size:24,
primaryKey:true,
required:true
}
} - enum 数组类型,指定value必须是数组中某一个元素
如:attributes:{
state:{
type:'string',
enum:['success','error','wronging'],
required:true
}
} - sails指定字段可以和数据库不一致,columnName 为数据库中的字段名
如:attributes:{
type:'string',
required:true,
columnName:'name'
} - 指定最小长度 minLength
如:attributes:{
type:'string',
defaultsTo:'123456',
minLength:6,
required:true
} - 指定自增长字段 autoIncrement ,一般搭配 unique使用(唯一字段)
如:{
type:'integer',
autoIncrement:true,
unique:true,
required:true
} - 关联其他 model
如:{
spouse:{model:'Person'}
}
- 比如我们定义一个user相关的模型
- attributes