gpt4 book ai didi

javascript - 更新特定模型后,如何让 keystoneJS 运行函数?

转载 作者:行者123 更新时间:2023-11-30 16:10:42 25 4
gpt4 key购买 nike

我想在特定 KeystoneJS 模型中有新的或更新的项目后运行一个函数。我怎么做?我会添加一个事件吗……已经有事件了吗?我是将它添加到模型中还是其他地方?

最佳答案

您可以像在任何非 keystone 项目中一样使用 mongoose 中间件。可以使用 .schema 访问 keystone 列表模式,例如

var keystone = require('keystone');
var Types = keystone.Field.Types;


var User = new keystone.List('User');

User.add({
name: { type: Types.Name, required: true, index: true },
email: { type: Types.Email, initial: true, required: true, index: true },
});

//do stuff BEFORE the user document is fully saved to the DB
User.schema.pre('save', function(next){
console.log('SAVING USER:', this);
next();
});
//do stuff AFTER the user document has been saved to the DB
User.schema.post('save', function(user){
console.log('USER WAS SAVED:', user);
});


User.defaultColumns = 'name, email';
User.register();

看看mongoose middleware ,因为一些限制适用,例如,当进行大量更新时,中间件将运行,这是 mongoose 的设计,与 keystone 无关。

关于javascript - 更新特定模型后,如何让 keystoneJS 运行函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36297838/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com