使用KeystoneJS创建网站时,如何添加存储在数据库中的一些网站范围的配置变量 - 最好通过管理员来操作 - 以Craft CMS's 'globals'的方式进行操作?
我无法在Keystone database documentation中找到关于此问题的任何内容,并且如果可能的话,我宁愿不使用具有Keystone列表的单例(例如,通过实现只有一个项目的列表)。
答案 0 :(得分:2)
我刚刚与其中一位Keystone开发者聊了聊。它已经widely discussed on ProductPains了,事实证明,拥有一个带有列表的单例目前(截至0.3.x)是唯一的方法:
models/Configuration.js
:const keystone = require('keystone');
const Types = keystone.Field.Types;
const Configuration = new keystone.List('Configuration', {
nocreate: true,
nodelete: true,
label: 'Configuration',
path: 'configuration',
});
Configuration.add({
siteName: { type: String },
siteDescription: { type: Types.Textarea },
});
Configuration.defaultColumns = 'siteName, siteDescription';
Configuration.register();
updates/0.0.2-configuration.js
:exports.create = {
Configuration: [
{ 'siteName': 'My site', 'siteDescription': 'TODO' }
]
};