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
,这很好,但正如我所写的,您需要定义一次远程方法