KeystoneJS:数据库中的站点范围配置变量

时间:2016-09-15 09:06:54

标签: node.js mongodb configuration keystonejs

使用KeystoneJS创建网站时,如何添加存储在数据库中的一些网站范围的配置变量 - 最好通过管理员来操作 - 以Craft CMS's 'globals'的方式进行操作?

我无法在Keystone database documentation中找到关于此问题的任何内容,并且如果可能的话,我宁愿不使用具有Keystone列表的单例(例如,通过实现只有一个项目的列表)。

1 个答案:

答案 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' }
  ]
};