我阅读Operation hooks并理解“不依赖于特定方法”的概念。所以我想知道是否可以在更新模型之前设置属性。
我的用户模型中有一个updatedAt属性,我希望在对PUT动词的所有调用中将其设置为new Date();
。
我没有尝试任何操作,因为我没有在文档或stackoverflow中找到答案。
感谢。
答案 0 :(得分:0)
module.exports = User => {
User.observe('before save', (ctx, next) => {
if (ctx.instance) {
ctx.instance.updatedAt = new Date()
} else {
ctx.data.updatedAt = new Date()
}
next()
})
}
如果您想将此常用逻辑应用于模型集,mixins通常是一种方法。
module.exports = (Model, options) => {
Model.defineProperty('updatedAt', { type: Date, default: '$now' })
Model.observe('before save', (ctx, next) => {
if (ctx.instance) {
ctx.instance.updatedAt = new Date()
} else {
ctx.data.updatedAt = new Date()
}
next()
})
}
如果您不想自己实现此功能,可以使用npm package。