您的位置:首页 > 其它

orm2 中文文档 2. 设置

2016-01-09 16:28 176 查看
译者:飞龙

来源:Settings

设置用于储存键值对。设置对象是
orm
(默认值)上的实例,之后会为每个
db
连接和每个定义过的
Model
建立快照。所以
orm.settings
上的更改只会作用于更改之后建立的连接,而
db.settings
会作用于更改之后定义的模型。

var orm = require("orm");

orm.settings.set("some.deep.value", 123);

orm.connect("....", function (err, db) {
// db.settings is a snapshot of the settings at the moment
// of orm.connect(). changes to it don't affect orm.settings

console.log(db.settings.get("some.deep.value")); // 123
console.log(db.settings.get("some.deep"));       // { value: 123 }

db.settings.set("other.value", { some: "object" });

console.log(db.settings.get("other.value"));     // { some: "object" }
console.log(orm.settings.get("other.value"));    // undefined
});


默认设置的结构是这样的:

var Settings = {
properties : {
primary_key     : "id",
association_key : "{name}_{field}",
required        : false
},
instance   : {
cache           : true,
cacheSaveCheck  : true,
autoSave        : false,
autoFetch       : false,
autoFetchLimit  : 1,
cascadeRemove   : true,
returnAllErrors : false
},
connection : {
reconnect       : true,
pool            : false,
debug           : false
}
};


设置描述
properties.primary_key
没有定义id属性的模型中,主键的名称
properties.association_key
关联键的属性名称(例如
user_id
properties.required
属性是否拥有默认行为
instance.cache
实例是否应该被缓存 (并不是真的缓存,和单例模式相关)
instance.cacheSaveCheck
被缓存的对象是否应该从缓存中返回 (不要修改这个设置,除非你知道自己在做什么)
instance.autoSave
如果开启的话,修改实例的任何属性时会自动保存
instance.autoFetch
是否需要自动获取关联
instance.autoFetchLimit
如果开启了自动获取关联,这个设置是获取关联的深度
instance.cascadeRemove
删除实例时是否要删除关联
instance.returnAllErrors
如果开启,实例保存时会记录下所有的错误并以数组形式返回,而不是遇到第一个错误就中止并返回
connection.reconnect
连接失效时是否尝试重新连接
connection.pool
是否使用驱动带有的连接池(如果支持的话)
connection.debug
向控制台打印带颜色的查询信息
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: