我有一个带有MongoDB数据库和简单Post
模型的Strapi项目。除其他事项外,此模型还具有具有以下属性的slug
字段:
type: string,
unique: true,
required: true
出于测试目的,我尝试通过 Strapi 的生命周期方法之一在将其提交到 DB 之前修改此字段的值:
module.exports = {
// Before saving a value.
// Fired before an `insert` or `update` query.
beforeSave: async (model) => {
// Set the password.
const newslug = model.slug + '-test';
model.slug = newslug;
},
};
但是当我在管理页面上save
帖子时,该方法似乎并没有像预期的那样被触发。该帖子及其slug
,在没有上面代码中显示的修改的情况下被更新到数据库。我是否误解了功能?
如果你使用的是NoSQL数据库(Mongo)
beforeSave: async (model) => {
if (model.content) {
model.wordCount = model.content.length;
}
},
beforeUpdate: async (model) => {
if (model.getUpdate().content) {
model.update({
wordCount: model.getUpdate().content.length
});
}
},
如果您使用的是SQL(SQLite,Postgres,MySQL)
beforeSave: async (model, attrs, options) => {
if (attrs.content) {
attrs.wordCount = attrs.content.length;
}
},