Loopbackjs 环回远程方法不断地将{id}添加到路由中

Loopbackjs 环回远程方法不断地将{id}添加到路由中,loopbackjs,loopback,Loopbackjs,Loopback,我只是从环回开始。 我已经成功地学习了一门关于环回的课程,以及它的文档中的许多教程 现在,当尝试创建一个真正的远程方法时,我一开始就失败了 我想创建一条如下所示的路线: /workspaces/cards 这应该是从我可以传递的一些查询字符串中读取的,它将给我一个“瑞士刀”类型的路由,我可以稍后在我的前端应用程序中的一些过滤字段中应用它 我打算使用的方式如下: /workspaces/cards?find=teams /workspaces/cards?find=projects /works

我只是从环回开始。 我已经成功地学习了一门关于环回的课程,以及它的文档中的许多教程

现在,当尝试创建一个真正的远程方法时,我一开始就失败了

我想创建一条如下所示的路线:

/workspaces/cards
这应该是从我可以传递的一些查询字符串中读取的,它将给我一个“瑞士刀”类型的路由,我可以稍后在我的前端应用程序中的一些过滤字段中应用它

我打算使用的方式如下:

/workspaces/cards?find=teams
/workspaces/cards?find=projects
/workspaces/cards?find=users
/workspaces/cards?find=countries
第一个问题在使用CLI命令创建远程方法后不久出现:lb remote method

它确实在我的workspace.json文件中创建了正确的数据,并且我已经将样板方法复制粘贴到了workspace.js文件中

仅从复制粘贴提供的内容执行,它什么也不做。“我的资源管理器”中将不会显示任何内容

因此,我对workspace.js和workspace.json文件进行了一些修改,直到我能够在浏览器中显示相应的路由

第一个问题是,我只能让欲望路线看起来像这样:

/workspaces/{id}/cards
如上所述,我希望这样:

/workspaces/cards
我已经尝试了很多事情,但到目前为止,我还没有成功地做到这一点

第二个问题是,它总是需要ID,我认为它的行为是这样的,因为路由,它顽固地出现在/workspace/{ID}/卡上

下面是我的.js和.json文件的外观(对于重要的部分)

workspace.js

module.exports = function(Workspace) {
    Workspace.cards = function (find, name, callback) {
        var result = {};

        callback(null, result);
    };


    Workspace.remoteMethod(
        'cards',
        {
            http: { "path": "/cards", "verb": "get" },
            accepts: [
                { arg: "find", type: "string", required: false, http: { source: "query" } },
                { arg: "name", type: "string", required: false, http: { source: "query" } }

            ],
            returns: { arg: "result", type: "Object", "root": true }
        }
    );

};
workspace.json

  //...
  "methods": {
    "prototype.cards": {
      "accepts": [
        {
          "arg": "find",
          "type": "string",
          "required": false,
          "description": "To match a search for an specific workspace|project|team|user|county",
          "http": {
            "source": "query"
          }
        },
        {
          "arg": "name",
          "type": "string",
          "required": false,
          "description": "To match a search fro an specific name of workspace|project|team|user|country",
          "http": {
            "source": "query"
          }
        }
      ],
      "returns": [
        {
          "arg": "result",
          "type": "object",
          "root": true,
          "description": ""
        }
      ],
      "description": "General Filtering for Everyting",
      "http": [
        {
          "path": "/cards",
          "verb": "get"
        }
      ]
    }
  }
我错过了什么

以下是我当前的环回版本:

4.2.0(发电机)-loopback@5.8.2环回-workspace@4.3.0)找到了


刚刚从json文件中删除了数据,一切都开始工作了

这个设置中的错误在于您定义了两次远程方法:js代码和json。你需要这样或那样做。如果您正在添加
prototype
关键字,这意味着您将通过具有特定ID的模型引用端点,因此您的路由看起来像:workspace/{ID}/cards。如果您要删除
prototype
,这很好,但正如我所写的,您需要定义一次远程方法