问题标签 [sails-postgresql]

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 回答
49 浏览

postgresql - 使用sails.js 支持Postgres ltree

我正在尝试使用sails.js 来构建一个项目并且遇到了麻烦,我想修补传递给水线postgres 适配器的“类型”,以便我可以使用postgres 类型。

我有一个当前 postgres 适配器的分支,当我更改对类型的水线支持以包含 ltree 时,适配器可以工作。

这是 postgres 适配器的分支 https://github.com/opus-1/sails-postgresql

这是我想要猴子补丁的代码:

https://github.com/balderdashy/waterline/blob/master/lib/waterline/utils/types.js

0 投票
2 回答
505 浏览

node.js - 如何在 SailsJs 中使用 PostgreSQL 事务?

我的问题是我有一个复杂的查询链,如果其中有人失败,它会回滚。我已经阅读了 Sails 中的事务,默认情况下,Sails 不支持事务,因为每个事务都与 Postgres 建立新连接,因此,一个查询有一个新连接。那么,我如何使用 Sails 进行交易?

0 投票
1 回答
63 浏览

node.js - 从数据库填充导航栏数据

我有一个sails 应用程序,我想从数据库中填充导航栏下拉菜单数据。

我正在使用策略来调用服务并填充sails.config.views.locals.HeaderData 变量

但是由于sails的一些异步特性,只有当控制器发送响应而不是请求到达策略时才会调用服务。这给了我ejs中的空数组

政策

}

0 投票
1 回答
50 浏览

javascript - 如何在具有多个 PK 的集合中使用“via”属性?

如何在具有多个 PK 的集合中使用“via”属性?下面是 hasMany 数据模型的示例。

模型定义。

具有两个“通过”属性的集合定义。

0 投票
0 回答
2785 浏览

node.js - 使用 Waterlinejs 在 PostgreSQL 中插入带有微秒的时间戳

我正在尝试以微秒精度保存时间戳,如下所示:

我已经单独测试了 PostgreSQL,它工作正常:

选择返回正确的精度:

然后我使用相同的 sql 查询对 nodejs 和 pg 连接器进行了测试。

将时间戳作为字符串传递是可行的,但如果我想传递一个 Date 对象,那么我会失去微秒精度。这是一个 JavaScript 限制,因为 Date 对象的最大分辨率为毫秒。为了绕过它,我使用此函数将时间戳转换为 bigint:

bigint 对 postgres 是透明的,并且选择查询返回正确的时间戳

现在到 Waterline,我使用 postgres 适配器创建了一个集合,并将我的时间戳定义为日期时间

这会将我的时间戳保存到秒,在水线 github 上提出了可能的补丁来支持毫秒(我已经测试过并且它正在工作)但我仍然缺少微秒精度的 3 个额外数字。正如我所展示的,在 JavaScript 中处理此问题的唯一方法是将其转换为 bigint。将 bigint 传递给我当前的模型会引发异常,所以我尝试像这样更改我的模型

但是现在水线框架抛出了一个无效的属性错误。

而作为一个字符串,我看到:

另外,我真的更喜欢将它作为时间戳。

可能吗?

谢谢

0 投票
1 回答
957 浏览

orm - Sails ORM:如何知道是否在 findOrCreate 水线函数中找到或创建

我正在使用 findOrCreate 水线模型功能。根据此处的文档,它检查第一个参数中是否存在记录。如果找不到,则创建第二个参数中的记录。有什么方法可以知道它是创建还是找到?

我的用例是确定它是冲突(如果记录已经存在)还是在数据库中创建。

0 投票
2 回答
461 浏览

arrays - 覆盖风帆更新以仅返回一个对象

当我更新模型时,waterlock.update()总是返回一个对象数组,即使我设置了标准 a primaryKey

在我的代码上

为了使用更新的记录,我必须指出0索引之类updatedRecord[0]的东西我认为不是很干净。根据 Sails 中的文档update(),这是一个常见的场景。

知道了,我有两个问题:

  1. 当您发现一个模型只返回该模型的更新对象而不是数组时,这不是更好吗?

  2. 如果这是一个约定,那么当只影响一个记录时,如何覆盖这个函数以便只返回一个对象而不是一个数组?.update()

0 投票
1 回答
774 浏览

postgresql - Sails ORM:如何在 valuesToEscape 参数中使用数组传递值

我有 rawQuery 需要逗号分隔的字符串,但根据这里的文档,第二个参数应该是一个数组:

一个动态的、不受信任的字符串数组,使用此模型数据库的适当模板语法进行 SQL 转义和注入 SQL 字符串。(如果您没有要注入的动态值,则只需在此处使用一个空数组。)

如何在不通过数组传递变量的情况下使此查询工作?我可以像这样直接添加变量

但它会容易受到 SQL 注入攻击。

0 投票
2 回答
1045 浏览

sails.js - 在 Sails 中的哪里放置 graphql 突变?

我已经安装了 npmsails-graphql,但我不知道在哪里放置突变,在网上冲浪我发现了 nodejs 示例,其中他们在 index.js 中添加了突变,但在sails 中没有这样的文件。提前致谢。

0 投票
1 回答
212 浏览

sails.js - 向关联对象添加记录会引发和错误多对多水线帆

Sail 多对多关联在添加关联对象后在保存时抛出错误。这是我的建模。

操作:

在我的用户控制器上,我有:

这是错误跟踪: