我正在尝试添加一个名为“admin”的隐藏字段类型,它只有创建模型项的人的用户 ID。这在本地工作正常,但由于某种原因在服务器上不起作用。这是我所做的,也许是因为我修改了 keystone/lib 中的文件?
/Models/Group.js
var keystone = require('keystone'),
Types = keystone.Field.Types;
/**
* Group Collection Model
* =============
*/
var Group = new keystone.List('Group');
Group.add({
name: { type: String, required: true, initial: true },
createdAt: { type: Date, default: Date.now },
groupId: { type: Types.Admin, required: true, initial: true, default: 'placeholder' }
});
Group.defaultColumns = 'name';
Group.register();
/node_modules/keystone/lib/fieldTypes 我添加了 admin.js
/*!
* Module dependencies.
*/
var util = require('util'),
utils = require('keystone-utils'),
super_ = require('../field');
/**
* Text FieldType Constructor
* @extends Field
* @api public
*/
function admin(list, path, options) {
this._nativeType = String;
this._underscoreMethods = ['crop'];
admin.super_.call(this, list, path, options);
}
/*!
* Inherit from Field
*/
util.inherits(admin, super_);
/**
* Crops the string to the specifed length.
*
* @api public
*/
admin.prototype.crop = function(item, length, append, preserveWords) {
return utils.cropString(item.get(this.path), length, append, preserveWords);
};
/*!
* Export class
*/
exports = module.exports = admin;
/node_modules/keystone/lib/fieldTypes/index.js
添加了这个:
exports.Admin = require('./admin');
/node_modules/keystone/模板/字段/管理员
添加了 form.jade 和 initial.jade 模板