Strapi:全球模型从何而来?
Strapi: where global models comes from?
例如,我通过管理面板创建了内容类型 "Item"。在 /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
没有导入,所以是全局的。
- 我想知道这个全局
Item
是在什么时候创建的?
- 全局
Item
和strapi.models.item
有什么区别?
- 我正在通过中间件提供 GraphQL 支持,因此我会将模型放在上下文对象中。使用
item
模型的最佳方式是什么:如服务、strapi.models.item
或 Item
?
谢谢。
PS:如果 Strapi 的一位作者会读到这篇文章,请问您为什么要如此大量地使用全局对象?
全局模型在 strapi-mongoose
或 strapi-bookshelf
上创建(取决于您使用的数据库)我们在这个节点模块中创建您的模型实例。
两者没有区别Item
=== strapi.models.item
我认为你的中间件会有动态逻辑,所以我建议你使用strapi.models
和strapi.plugins[plugin].models
。
您可以自定义模型的全局名称以便更易于使用 https://strapi.io/documentation/developer-docs/latest/development/backend-customization.html#models
因此全局名称可以更改,但 strapi
对象中的路径不会更改。
例如,我通过管理面板创建了内容类型 "Item"。在 /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
没有导入,所以是全局的。
- 我想知道这个全局
Item
是在什么时候创建的? - 全局
Item
和strapi.models.item
有什么区别? - 我正在通过中间件提供 GraphQL 支持,因此我会将模型放在上下文对象中。使用
item
模型的最佳方式是什么:如服务、strapi.models.item
或Item
?
谢谢。
PS:如果 Strapi 的一位作者会读到这篇文章,请问您为什么要如此大量地使用全局对象?
全局模型在
strapi-mongoose
或strapi-bookshelf
上创建(取决于您使用的数据库)我们在这个节点模块中创建您的模型实例。两者没有区别
Item
===strapi.models.item
我认为你的中间件会有动态逻辑,所以我建议你使用
strapi.models
和strapi.plugins[plugin].models
。
您可以自定义模型的全局名称以便更易于使用 https://strapi.io/documentation/developer-docs/latest/development/backend-customization.html#models
因此全局名称可以更改,但 strapi
对象中的路径不会更改。