node.js Sails 学习文档 model 篇
文章目录
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'}
}