问题标签 [feathers-sequelize]

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.

0 投票
0 回答
78 浏览

feathersjs - FeathersJs:检查用户是项目创建者还是关联项目的创建者

我有两个服务:postscomments. 每个帖子可以有多个评论。用户 1 创建帖子,用户 2 在此帖子中创建评论。两个用户都应该能够更新、修补或删除创建的评论。如何正确限定两个用户以修改用户 2 创建的评论?

帖子模型

评论模型

帖子只能由帖子创建者删除,因此setFieldfeathers-authentication-hooks这种情况下可以很好地删除帖子。但是,我如何使帖子创建者有资格管理其帖子中的评论?

0 投票
1 回答
229 浏览

node.js - 使用连接表对 where 范围进行 Sequelize

我与联接表有属于多个关系

目前,当我运行 find 时,我会恢复所有课程,甚至是儿童课程,这是预期的行为,但我希望有另一个范围,我只能请求有孩子的课程。

在我的范围内,我有以下内容:

但是 Rest Api 给了我以下输出

在文档中我找不到任何方法来做到这一点,我尝试了 sequelize.literal 和 in 运算符但没有成功。有谁知道这是如何完成的,我确定我错过了一些东西。

0 投票
0 回答
234 浏览

node.js - Sequelize Node.js 模型未关联到模型

我的 Node JS 应用程序中有两个模型,用户和公司。当我在获取公司时尝试使用 include 函数时,出现错误:

这是用户模型

和公司模型:

和包含功能

当我在用户查询中包含公司模型时,它可以正常工作。但不是反过来。有任何想法吗?

谢谢

0 投票
2 回答
1081 浏览

sequelize.js - Sequelize hasMany 关联只返回一个对象

hasMany关联应该返回一个对象列表,权限?我有一个user记录和一些connections与之相关的记录。

型号connections

型号users

connections通过将模型添加到 sequelize 查询参数来包含该模型:

最终结果是响应中的connections属性user是单个对象而不是对象数组。我记录了 Sequelize 的查询执行,并直接在数据库中尝试了 Sequelize 为这个特定调用所做的原始查询,它返回了一个记录列表,正如它应该的那样。但是当我通过 API 查询它时,它只返回一个对象而不是一个数组。

0 投票
1 回答
242 浏览

sequelize.js - 在钩子续集关联之前,feathersjs 中没有返回任何内容

我在我的用户服务中创建了一个 before 挂钩,旨在包含来自组织模型的记录。用户和组织之间的关系是

before 钩子称为 attach-orgnaization.js,看起来像

它像这样在 users.hooks.js 中设置

当我 GET 时,/users?id=1我让用户返回与用户关联的组织 in users_to_organizations,这恰好是 org 3“测试组织”。

我期待在回复中看到更多与组织相关的字段。

相反,我只看到

单步调试器(pycharm)我可以看到钩子中的代码正在执行。

我猜要么 sequelize 没有看到关系,要么feathers 没有将包含添加到查询中。

我可能会错过什么?

谢谢!

0 投票
1 回答
435 浏览

postgresql - FeathersJS 连接到 PostgreSQL 时出错

我是 FeathersJS 的新手并试图将其与 PostgreSQL 连接,但我在使用 SequelizeConnection 时遇到问题,它向我显示了这个错误

信息:Feathers 应用程序在 http://localhost:3030 上启动

错误:未处理拒绝:Promise {"_bitField":18087936,"_fulfillmentHandler0":{"name":"SequelizeConnectionError","parent":{"length":166,"name":"error","severity": "FATAL","code":"28P01","file":"d:\pginstaller_12.auto\postgres.windows-x64\src\backend\libpq\auth.c","line":"333","例程":"auth_failed"},"original":{"length":166,"name":"error","severity":"FATAL","code":"28P01","file":"d: \pginstaller_12.auto\postgres.windows-x64\src\backend\libpq\auth.c","line":"333","routine":"auth_failed"}},"name":"SequelizeConnectionError","parent":{"length":166,"name":"error","severity":"FATAL","code":"28P01","file":"d:\pginstaller_12.auto\ postgres.windows-x64\src\backend\libpq\auth.c","line":"333","routine":"auth_failed"},"original":{"length":166,"name":"错误","严重性":"致命","代码":"28P01","文件":"d:\pginstaller_12.auto\postgres.windows-x64\src\backend\libpq\auth.c","行":"333","例程":"auth_failed"}}文件":"d:\pginstaller_12.auto\postgres.windows-x64\src\backend\libpq\auth.c","line":"333","routine":"auth_failed"},"original":{ “长度”:166,“名称”:“错误”,“严重性”:“致命”,“代码”:“28P01”,“文件”:“d:\pginstaller_12.auto\postgres.windows-x64\src\后端\libpq\auth.c","line":"333","routine":"auth_failed"}}文件":"d:\pginstaller_12.auto\postgres.windows-x64\src\backend\libpq\auth.c","line":"333","routine":"auth_failed"},"original":{ “长度”:166,“名称”:“错误”,“严重性”:“致命”,“代码”:“28P01”,“文件”:“d:\pginstaller_12.auto\postgres.windows-x64\src\后端\libpq\auth.c","line":"333","routine":"auth_failed"}}\pginstaller_12.auto\postgres.windows-x64\src\backend\libpq\auth.c","line":"333","routine":"auth_failed"}}\pginstaller_12.auto\postgres.windows-x64\src\backend\libpq\auth.c","line":"333","routine":"auth_failed"}}

0 投票
3 回答
18285 浏览

javascript - Sequelize js,我们如何在迁移中更改列类型

我们如何在迁移中更改列类型。在我的迁移 1 中,我有一个添加了该列的迁移。现在我想将列类型从字符串更改为文本,我应该创建一个类似于 changeColumn 的新迁移文件,还是可以创建与迁移 1 相同的新迁移文件,但我只需将类型更改为文本?谢谢你。

#迁移 1

迁移 2(创建新迁移会像这样工作吗?仍然 addColumn 但我将类型更改为文本)

0 投票
1 回答
396 浏览

feathersjs - FeathersJs - 清理用户服务中 Find 方法的响应破坏了身份验证服务

我在用户服务中创建了一个后挂钩,它应该清理“查找”方法的响应,它破坏了身份验证服务。

after hook sanitizeResponse应该验证查询是否与电子邮件或 cpf 有关,如果是,则应删除一些字段并添加一些新字段。

这是users.hooks.js

在编写这个钩子之前,身份验证过去工作得很好,但之后它开始向我发送“未通过身份验证”的响应。

我没有更改由 feathersjs-cli 生成的 user.class.js 和 authentication.js 文件中的任何内容。

我想知道我做错了什么?有没有更好的方法来清理响应?

感谢你们对我的帮助!

0 投票
1 回答
209 浏览

rest - 仅针对一项或多项服务的 RESTful CRUD

如果我有一个简单的数据结构,只需要一个服务(公式)来处理其他表(表单组字段)中的相关数据。

  1. 如何区分是更新操作还是在结构中插入了新数据的创建操作?(通过类似 id 是否为空?)
  2. 使用一项或多项服务?

数据结构:

如果只有一个服务(/formular),我会将整个数据结构发送给它,并且需要区分具有id的元素,因此它将进行更新查询,或者如果没有,则创建与其相关的记录“父母”-id。

在一项服务中这样做会损害单一责任原则。因为我的公式服务中有来自表单组和字段的逻辑。

此外,我不确定之前和之后的钩子是否可以再与羽毛续集关联一起使用。他们可能绕过了。

如果使用多个服务(/formular、/formgroup、/field),请对id进行相同的检查,但客户端应用程序使用 PUT/PATCH 或 POST 分派到每个服务。

补丁/公式/7

补丁/formgroup/28

补丁/字段/108

POST /formgroup (插入公式 id 7 并取回 formgroup id 29 用于下一个字段插入)

POST /field(插入“Street”,表单组 id 为 29)

POST /field(插入 'Zip' 表单组 id 为 29)

...

但这看起来不对。提出了这么多要求。也许对每个新创建的公式/表单组/字段立即这样做是一种解决方案,而不是考虑立即保存整个数据结构。

第三种方法可能是拥有所有服务,但永远不要公开所有服务。将洞数据结构发送到 /formular 服务,该服务在内部调用其他服务 /formgroup 和 /field 以进行 CRUD 操作。但我不知道这是否仍然适用于钩子部分和羽毛续集功能。

实体关系模型:

实体关系模型

我的测试项目的源代码可以在这里找到:https ://github.com/Orbitkorbi/feathers-sequelize-test

关于应用程序的附加信息: 我的应用程序分为两部分。

  1. 运行 feathersjs 并为 REST API 提供其服务的服务器应用程序。
  2. 在浏览器中运行的客户端 SPA 调用 API

问题: 在feathersJS 服务、钩子、sequelize 关系和 RESTful API 方面如何做到这一点?