関連するファイル
server/models/config.js
が Mongoose のスキーマ定義ファイルserver/service/config-loader.js
が値のロード、変換、後方互換を担うserver/service/config-manager.js
が利用側へのAPIを提供する
利用側Example
TBD
キャッシュについて
- Express サーバーがオンメモリでコンフィグ値のキャッシュを持っている
ConfigManager.updateConfigsInTheSameNamespace
内でキャッシュが更新される
デバッグ
Logger 設定
'growi:service:Config*': 'debug',
(Obsoleted) Crowi 由来旧仕様
v3.5.x 以降で廃止済み
server/models/config.js
が Mongoose のスキーマ定義ファイル- Crowi 時代からの初期値を
getDefaultCrowiConfigs
で設定 - GROWI をクリーンインストールした場合の初期値を
getArrayForInstalling
で取得可能
互換性について
- 新旧APIは、それぞれでコンフィグ値のキャッシュを持っている
- 古い方のAPIで設定した値の取得に関しては新しいgetConfigでも取得可能だが、
古い方のAPIで更新かけた際に新しいAPIで値を取得しにいってもキャッシュは古いまま
- 古い方のAPIで設定した値の取得に関しては新しいgetConfigでも取得可能だが、
利用Example
Config.updateNamespaceByArray('crowi', form, (err, config) => { Config.updateConfigCache('crowi', config); return res.json({ status: true }); });
updateConfigsInTheSameNamespace について
複数の Config をまとめて更新するためのメソッド
冗長化対応について
第3引数の withoutPublishingS2sMessage
に false を渡すことで publishUpdateMessage
を実行する。
基本的に、false で問題ない。
convertInsertValue について
更新する Config 値に 空文字を与える場合、 convertInsertValue
によって null に設定される。
これは textInput で空欄にして保存した時のためである。