0

例如,我通过管理面板创建了内容类型“项目”。在/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. globalItem和 和有什么不一样strapi.models.item
  3. 我正在通过中间件支持 GraphQL,所以我会将模型放在上下文对象中。使用模型的最佳方式是什么item:比如服务,strapi.models.item还是Item

谢谢你。

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

4

1 回答 1

2
  1. 全局模型是在strapi-mongoosestrapi-bookshelf(取决于您使用的数据库)上创建的。在此节点模块中,我们创建模型的实例。

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

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

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

于 2018-03-10T11:08:24.790 回答