问题标签 [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 - 使用 Objection ORM 在 feathersjs 中进行事务
feathers -objection - Objection.js的服务适配器- 构建在 Knex 之上的最小 SQL ORM。
事务是关系数据库中的原子和孤立的工作单元。
我们想在使用 Feathers CLI 生成的 feathersjs 应用程序中创建和使用事务。
但
我们无法弄清楚如何使用事务参数运算符创建事务对象并将其传递给一系列服务调用,以及如何使用 await transaction.trx.commit()和 await transaction.trx.rollback()。
同样需要帮助。
feathersjs - Feathersjs:一旦我在之前的函数中将它与另一个链接起来,我的钩子就会失败(失去上下文)
我在前钩子(get)中有2个函数(authenticate,restrictAccess),我想将它们链接在一起。但是restrictAccess被执行了两次(到第二轮它已经丢失了上下文)当我删除authenticate时,restrictAccess按预期工作。
这是我的钩子
但是当我删除身份验证时
限制访问按预期工作
feathersjs - FeathersJs - 清理用户服务中 Find 方法的响应破坏了身份验证服务
我在用户服务中创建了一个后挂钩,它应该清理“查找”方法的响应,它破坏了身份验证服务。
after hook sanitizeResponse应该验证查询是否与电子邮件或 cpf 有关,如果是,则应删除一些字段并添加一些新字段。
这是users.hooks.js
在编写这个钩子之前,身份验证过去工作得很好,但之后它开始向我发送“未通过身份验证”的响应。
我没有更改由 feathersjs-cli 生成的 user.class.js 和 authentication.js 文件中的任何内容。
我想知道我做错了什么?有没有更好的方法来清理响应?
感谢你们对我的帮助!
node.js - Feathers JS MongoDB 服务:动态集合名称
目标
我正在尝试使用 Feathers JS 构建一个多租户应用程序。登录时,租户 ID 将包含在请求中。从那时起,租户 ID 将从user
带有请求参数的字段中获取。每个用户都有这个tenantId
字段。
在 MongoDB 中,我对每个租户的每种数据类型都有一个唯一的集合。集合名称看起来tenantId.documents
像tenantId.users
问题
通过feathers generate service
CLI 命令生成的服务如下所示:
如您所见,生成Service
的 s 在实例化期间似乎需要它们的集合名称(在本例中为“文档”)。通常,这是有道理的,因为它可以节省await
调用app.get("mongoClient")
但是,由于我需要根据 User 动态更改从哪个集合中读取tenantId
,因此这对我不起作用。
我实现了以下内容:
问题是这些:
- 我需要
await this.client
每个请求,即使在用户实际向该服务发出请求时承诺可能已经实现 Service
即使我几乎不需要添加任何真正的功能,我也必须实现父级的每个方法。
问题
解决这个问题的最简单的方法是什么?
- 我不想覆盖每个服务中我需要的每个方法
- 我看不到用中间件或钩子来处理这个问题的方法。
- 我也不认为有必要在我的应用程序中为每个租户创建一个服务实例。看起来很浪费,因为我不需要根据租户 ID 发出任何额外的外部请求,我只需要更改集合
在 Feathers 中是否有一个好的、漂亮的方法来做到这一点?
feathersjs - 使用 Feathersjs 设计注册程序
我有一个关于在我的应用程序后端使用 FeatherJS 设计注册程序的问题。
我面临的问题如下:
我希望用户能够使用他/她的电子邮件和密码注册他的组织/公司。该用户可以被视为组织的管理员。
创建该管理员用户后,我希望该用户能够创建链接到他/她的组织的其他用户。为了确保只有管理员用户可以创建其他用户,我设置了羽毛权限以检查“用户”服务的“之前”挂钩中的“管理员”权限
我现在遇到的问题是我无法注册初始用户,因为 before 挂钩正在请求一个经过身份验证的用户,该用户具有我没有的管理员权限,因为该用户尚未创建。
我可以删除身份验证和权限检查,但随后我的用户服务“不受保护”,任何人都可以使用对服务器的正确 POST 调用来创建用户。
我的问题是:我应该如何设置我的服务和/或挂钩,以便我可以在我的应用程序中注册一个新用户,并且只有经过身份验证的管理员用户才能在应用程序中创建新用户?
提前谢谢了!
node.js - Feathers authentication.create 抛出 401 not authenticated 错误
// 代码
// 配置
我在登录 API 中使用 authentication.create 方法,当我尝试登录时收到此错误响应
// 要求
用户名和密码正确,这适用于我的本地机器(macOS),仅当我在测试环境(AWS EC2 中的 ubuntu 20)中运行时才会引发错误。它们都指向 AWS EC2 实例中的同一个数据库(mySQL 5)。是什么导致了这个问题?
javascript - 在 Feathers.js 客户端过滤/查询实时事件
我正在为一个项目尝试 Feathers js,并且想知道实现这一目标的最教条的方法是什么:
我有一个数据集,我想接收其子集的实时更新。作为一个简化的示例,假设它是一组日历事件,我只想在特定月份的事件发生变化时接收更新。
通过四处搜索,我发现了两种我认为可行的方法:
使用羽毛反应,所以我可以订阅日历服务的 find 方法,该方法正在查询我想要收听的子集。
监听日历服务上的各种事件并“手动”过滤接收到的数据。
据我所知,这两种方法都行得通,我只是不知道一种方法是否比另一种更可取,或者是否有更好的方法可以完全做到这一点?