【发布时间】:2018-12-18 23:17:59
【问题描述】:
我刚刚开始使用 Loopback。 我已经成功地学习了一门关于 LoopBack 的课程,以及其文档中的许多教程。
现在,当我尝试创建一个真正的远程方法时,我一开始就失败了。
我想创建一个这样的路线:
/workspaces/cards
这应该从我可以传递的一些查询字符串中读取,它会给我一个“瑞士刀”类型的路由,我以后可以在我的前端应用程序中的一些过滤字段中应用它.
我打算使用的方式是这样的:
/workspaces/cards?find=teams
/workspaces/cards?find=projects
/workspaces/cards?find=users
/workspaces/cards?find=countries
第一个问题在使用 CLI 命令创建远程方法后不久出现:lb remote-method。
它确实在我的 workspaces.json 文件中创建了正确的数据,并且我已将样板方法复制粘贴到我的 workspaces.js 文件中。
仅根据复制粘贴提供的内容进行操作,它什么也没做。我的资源管理器中不会出现任何内容。
所以,我对我的 workspace.js 和 workspace.json 文件进行了一些修改,直到我能够使相应的路线出现在资源管理器中。
第一个问题是我只能让欲望路线看起来像这样:
/workspaces/{id}/cards
而且,如上所述,我想要这样:
/workspaces/cards
我已经尝试了很多事情,但到目前为止我还没有能够成功地做到这一点。
第二个问题是它总是需要 ID,我认为它的行为是因为路由,它顽固地出现在 /workspaces/{id}/cards
这是我的 .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 (generator-loopback@5.8.2 loopback-workspace@4.3.0)
【问题讨论】:
标签: loopbackjs loopback