大佬教程收集整理的这篇文章主要介绍了使用 Mongoose 在 Strapi 中创建自定义查询,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我是 StrAPI 和 Mongoose 的新手,所以如果这是一个愚蠢的问题,我深表歉意。
按照文档 (https://strapi.io/documentation/developer-docs/latest/development/BACkend-customization.html),我尝试在 StrAPI 中创建一个自定义查询,我想在其中返回按名称 desc 排序的名为 people
的整个集合。但是当我到达端点时,我收到 500 错误并检查终端的错误消息是 CastError: Cast to ObjectID Failed for value "alldesc" at path "_ID" for model "people"
。
这是我的代码:
services/people.Js
@H_325_5@module.exports = { findBynameDesc() { const result = strAPI .query("people") .model.find() .sort({ name: "descending" }); return result.map((entry) => entry.toObject()); },};
controllers/people.Js
@H_325_5@module.exports = { async alldesc(ctX) { const entitIEs = await strAPI.services.people.findBynameDesc(ctX); return entitIEs.map((entity) => sanitizeEntity(entity,{ model: strAPI.models.people }) ); },};
config/routes.Json
{
"routes": [
...
{
"method": "GET","path": "/people/alldesc","handler": "people.alldesc","config": {
"policIEs": []
}
}
]
}
我做错了什么?
更新:即使从查询中删除 .sort({ name: "descending" });
,错误仍然存在,所以我想可能是我在控制器中使用服务的方式有问题?
问题出在 routes.json
。基本上似乎 Strapi 不喜欢斜杠 /
所以我尝试了 /people/alldesc
而不是 /people-alldesc
并且它起作用了。
在服务中也不需要 return result.map((entry) => entry.toObject());
,这会导致花药错误,只需执行 return result
即可。
以上是大佬教程为你收集整理的使用 Mongoose 在 Strapi 中创建自定义查询全部内容,希望文章能够帮你解决使用 Mongoose 在 Strapi 中创建自定义查询所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。