无法在 Strapi 模型中调用生命周期方法?

Unable to call lifecycle methods in Strapi models?

我有一个带有 MongoDB 数据库和一个简单 Post 模型的 Strapi 项目。除其他外,该模型还有一个具有以下属性的 slug 字段:

type: string,
unique: true,
required: true

出于测试目的,我试图在通过 Strapi 的生命周期方法之一将其提交给数据库之前修改该字段的值:

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 a post 时,该方法似乎并没有像预期的那样被触发。 post 连同它的 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;
  }
},