ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# 设置 > 译者:[飞龙](https://github.com/wizardforcel) > 来源:[Settings](https://github.com/dresende/node-orm2/wiki/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` | 向控制台打印带颜色的查询信息 |