【问题标题】:Strapi: where global models comes from?Strapi:全球模型从何而来?
【发布时间】:2021-03-31 20:52:14
【问题描述】:

例如,我通过管理面板创建了内容类型“项目”。在/api/item/services/Item.js 我看到类似

的代码
 fetchAll: (params) => {
const convertedParams = strapi.utils.models.convertParams('item', params);

return Item
  .find()
  .where(convertedParams.where)
  .sort(convertedParams.sort)
  .skip(convertedParams.start)
  .limit(convertedParams.limit)
  .populate(_.keys(_.groupBy(_.reject(strapi.models.item.associations, {autoPopulate: false}), 'alias')).join(' '));
},

但是Item 没有被导入,所以它是全局的。

  1. 我想知道这个全局 Item 是在什么时候创建的?
  2. 全局Item和strapi.models.item有什么区别?
  3. 我正在通过中间件支持 GraphQL,所以我会将模型放在上下文对象中。使用item 模型的最佳方式是什么:喜欢服务、strapi.models.item 或Item?

谢谢。

PS:如果 Strapi 的作者之一会读到这篇文章,你能告诉我为什么你如此大量地使用全局对象吗?

【问题讨论】:

    标签: strapi


    【解决方案1】:
    1. 全局模型在strapi-mongoose 或strapi-bookshelf 上创建(取决于您使用的数据库)我们在此节点模块中创建模型的实例。

    2. 他们之间没有区别Item === strapi.models.item

    3. 我认为您的中间件将具有动态逻辑,因此我建议您使用strapi.models 和strapi.plugins[plugin].models。

    您可以自定义模型的全局名称以更易于使用https://strapi.io/documentation/developer-docs/latest/development/backend-customization.html#models 因此全局名称可以更改,但strapi 对象中的路径不能更改。

    【讨论】:

      猜你喜欢
      • 2018-12-23
      • 2013-11-24
      • 1970-01-01
      • 2020-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-16
      相关资源
      最近更新 更多