程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了使用 Mongoose 在 Strapi 中创建自定义查询大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决使用 Mongoose 在 Strapi 中创建自定义查询?

开发过程中遇到使用 Mongoose 在 Strapi 中创建自定义查询的问题如何解决?下面主要结合日常开发的经验,给出你关于使用 Mongoose 在 Strapi 中创建自定义查询的解决方法建议,希望对你解决使用 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,请注明来意。