问题标签 [feathers-service]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 如何避免使用feathers.js在挂钩中多次运行服务?
我在羽毛钩的羽毛服务中遇到问题。确切的问题是我在羽毛钩子中使用羽毛服务,当我在钩子中调用服务时,它会运行多次,这样就会发生内存问题。我的问题是如何避免服务在挂钩中多次运行。
我预期的解决方案是服务应该在挂钩上单次运行。
postgresql - 羽毛续集是如何工作的
我在前端使用 angular2,在后端使用节点/羽毛,而不是 Postgres(续集)数据库。
在后端,我在“.../events”路由上有事件服务,我试图从数据库中获取数据,当我想检索所有事件时它工作正常,所以我只是在这条路由上发出请求..或者当我只想检索一个具有特定 id 的事件(在“../events/>>id<< 上发出请求)。但是如何通过其他属性获取数据,例如我有用户及其与事件一对多的关联,那么我将如何检索一个用户的所有事件(按用户 ID 搜索,而不是按事件 ID 搜索)。或任何其他属性,例如按名称,返回具有特定名称的所有事件。这将如何工作,任何代码示例?
在事件模型中,我与用户的关系是一对多的(事件有创建者),并且我将该连接作为 events.belongsTo(user)。我如何才能补充说,同一事件与用户也有多对多的关系,因为它还将“参与者”作为用户也包含在该事件中,并且每个用户都可以参与或拥有许多事件。
node.js - Feathersjs -> 使用动态过滤器和列选择服务查找
所以这不是一个真正的问题,更多的是关于我如何解决这种特定情况的帖子:
期望的情况
我希望能够从 feathersjsfind
服务调用中选择数据。但是,我不想返回所有列,而是根据情况返回不同的列,并且在结果中也有关联的模型。如果这还不够,我需要传递要在整个选择中使用的过滤条件。此外,它不是在客户端完成,并且尽可能少,因此操作不会有风险
开发的解决方案
这是我想出的解决方案。我正在使用 vuex 从客户端进行 api 调用,在后端我使用 feathers-custom-methods 来提供一个包含多种方法的服务,因此我可以将它捆绑在每个模块中,我称之为这些 services helper.service
。因此,例如terms
使用一种方法getSectionTerms
为特定站点部分进行基本选择,getTerms
用于管理(返回所有内容)。我没有详细描述每一步,但以后可能会这样做。
第 1 步:按照初始文档中的说明安装 feathers-custom-methods
第 2 步:创建服务文件。我的是这样的。
文件中的第一部分是制作服务本身。create
并且setup
需要让它工作。然后你可以添加你需要的任意数量的方法。由于我将重复这种类型的数据选择,但需要不同的列和过滤器,因此我创建了一个函数来调用初始的 featherjs 服务查找方法。这是第二部分。它的配置方式使您无需多次重写。好的,我需要在这里和那里添加一些检查并使用默认值进行设置,以防未传递参数。
第 3 步:配置要使用的服务。我在我的index.js
文件
在这个文件中,我将向数组中添加更多选项,helper_terms
我在步骤 2 的文件中创建另一个条目。
第四步:配置客户端。在我的情况下,通过 vuex 商店调用
这会将过滤条件传递给后端。我仍然用更多选项来改变它,但它现在正在工作。我将一个对象传递给后端,其中包含任意数量的过滤器,例如is_active: 0
或language: 'en'
Step 5在某处调用vuex函数获取数据
rest - 羽毛定制服务方式——违反规则
Feathers 框架旨在坚持 REST 设计,我知道,但我认为我有一个值得打破规则的边缘案例。我想制作一个音乐播放器 API,允许通过 HTTP 和 Socket.io 以编程方式访问播放器控件。
然而,播放器不是get
, put
, patch
,post
和的简单情况delete
。将为每个用户创建一个播放器,并且永远不会被删除,只会更改。我想要在方法的子路由上使用自定义方法,例如 play、pause、setQueue 等,例如PATCH /player/play
和PATCH /player/pause
.
这正是Spotify 在他们的 API 中的做法,它比PATCH
每次向同一个端点发送请求并手动更新玩家数据更有意义,即。PATCH /player {nowPlaying: {index: newIndex}}
跳到下一个曲目,API 的用户必须知道播放器数据的架构及其操作方式。相反,类似的东西PATCH /player/next
更有意义并且更易于使用。
如何使用 Feathers 的 API 实现这样的服务,而无需在 express 中手动完成?如果不可能,将自定义快递代码与应用程序的其余部分很好地集成的最友好的方法是什么?
mongodb - 如何使用feathersjs处理多到少的mongodb关系?
我有两个模型,具有多对少的关系,我正在建模如下:
如果不编写自定义服务/以羽毛友好的方式,我将如何:
- 查询投资组合并从股票集合中填充相关记录
- 简化对投资组合模式中嵌套位置的插入/更新(即不更新整个记录)
这是否受支持/我应该编写自定义服务和/或规范关系吗?
编辑- 解决了 #1 使用前钩子获取额外数据的第一个问题:
node.js - 如何覆盖feathersjs默认服务方法
我有一个使用该feathers generate service
命令创建的 feathersjs 服务。我想覆盖它的create
方法定义。
这是我的服务班
create 方法的测试显示的是原始方法的结果,而不是我的。
我能做些什么?
rethinkdb - 将主键从“id”更改为“any_other_key”
创建 rethinkdb 羽毛服务后,如何更改RethinkDB的主键?
我尝试了下面的代码,但它不会影响。
有什么我错过的吗?
javascript - FeathersJS 中的非 CRUD 路由
我有一项服务可以results
处理. 我将如何创建一个基本上以该特定 id 获取结果并使用结果数据创建条形图的路由。results
feathersjs
/results/:id/hr_bar_graph
我目前的代码是:
现在被困在这里一段时间了。请帮忙。
unique-constraint - 使用 nedb 创建羽毛服务时,是否可以定义唯一索引?
我使用 nedb 制作了一个羽毛服务,feathers generate service
假设该服务被调用warehouses
,我想在名称上有一个唯一索引。Nedb 文档告诉我,我可以创建一个唯一索引db.ensureIndex
,但我似乎无法在我的羽毛代码中找到我应该这样做的地方。谁能指出我正确的方向?