博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
orm2 中文文档 3. 定义模型
阅读量:5986 次
发布时间:2019-06-20

本文共 1364 字,大约阅读时间需要 4 分钟。

译者:

来源:

在[连接](1. Connecting to Database.md)之后,你可以使用连接对象(db)来定义你的模型。你需要指定模型的名称,一个用于描述的属性和一些(可选的)选项。下面是一个简短的例子:

var Person = db.define('person', {  id:      {
type: 'serial', key: true}, // the auto-incrementing primary key name: {
type: 'text'}, surname: {
type: 'text'}, age: {
type: 'number'}}, { methods : { fullName: function() { return this.name + ' ' + this.surname; } }});

这个模型叫做person(通常也是数据库里面表的名称),它有三个属性(namesurname为文本,age为数值)。如果你自己不指定任何键的话,默认的id: { type: 'serial', key: true }会添加进来。在这个例子中,有个模型方法叫做fullName。下面是这个模型的使用方法的示例:

Person.get(73, function(err, person) {
if (err) throw err; console.log('Hi, my name is ' + person.fullName());});

这会获取id=73person对象,并且打印出它的名字和姓氏。其它类型的可用属性请见[这里](3.1 Model Properties.md)。

API

/** * @param {Object} props Property definitions * @param {Object} opts Options */db.define(props, opts)

db.define()接收的第一个对象(第二个参数)被称为属性对象,它定义了所有的[属性](3.1 Model Properties.md)。

第二个对象指定了额外的选项:

选项名称 类型 描述
collection String 覆写数据库中表的名称
methods Object 模型实例上的额外方法,它会被设置到实例上。
hooks Object 用户定义的[钩子或回调](3.3 Model Hooks.md)
validations Object 用户定义的[验证器](3.2 Model Validations.md)
id Array 为了支持在properties上设置key: true而不提倡使用
cache Boolean 允许你开启或者禁用单例行为。它叫做cache,但是和缓存毫无关系。
autoSave Boolean 不推荐。在属性修改时自动保存模型。
autoFetch Boolean 是否自动获取关联
autoFetchLimit Number 自动获取关联的深度
cascadeRemove Boolean 删除实例时是否要删除关联

转载地址:http://seylx.baihongyu.com/

你可能感兴趣的文章
微软删最大脸部辨识数据库 MS-Celeb-1M
查看>>
javascript实现页面窗口最大化
查看>>
ANDROID studio离线编译遇到的问题记录
查看>>
SpagoBi开发示例——员工离职人数统计
查看>>
听说你在学Python?来点PEP吧
查看>>
迄今为止把同步/异步/阻塞/非阻塞/BIO/NIO/AIO讲的最清楚的好文章(建议收藏)...
查看>>
C# DateTime判断时间
查看>>
推荐一款github管理神器SourceTree
查看>>
Shiro 基础教程
查看>>
3D打印路径填充算法 -- Connected Fermat Spirals for Layered Fabrication
查看>>
逆元(清北 算)
查看>>
文件共享服务,FTP,NFS,SAMBA配置
查看>>
简单小爬虫
查看>>
判断js中的数据类型的方法
查看>>
Vuex的基本概念、项目搭建、入坑点
查看>>
如何在MySQL中设置外键约束
查看>>
【转载】关于什么是测试专家的讨论
查看>>
jQuery 定时局部刷新(setInterval)方法总结
查看>>
享元模式(Flyweight Pattern)
查看>>
windows pip安装 更新
查看>>