У меня есть определенные ключи, такие как createdAt и updatedAt, которые должны быть определены во всех схемах. Есть ли способ избежать дублирования кода?Применить определенные ключи для всех ключей SimpleSchemas
Я использую пакет SimpleSchema.
мне нужен следующий код во всех моих Schemas.xxx
createdAt: {
type: Date,
optional: true,
autoValue: function() {
if (this.isInsert) {
return new Date;
} else if (this.isUpsert) {
return {$setOnInsert: new Date};
} else {
this.unset();
}
},
autoform: {
type: 'hidden'
}
},
updatedAt: {
type: Date,
optional: true,
autoValue: function() {
if (this.isUpdate) {
return new Date();
}
},
autoform: {
type: 'hidden'
}
}
Это похоже на приятное решение для меня. Любые плюсы и минусы для использования этого решения с использованием сборных крючков? – Chris
Сделайте оба! Создайте поле в своей схеме и вставьте с помощью крючков коллекции. На самом деле неважно, попадают ли данные вручную, через autoValue или hook. Лично я иду вручную. autoValues может быть ошибочным, и есть некоторые случаи (такие как preference booleans), где я не хочу запускать изменение в updatedAt. –