问题标签 [knexjs]

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 投票
1 回答
115 浏览

postgresql - KNEX 中的别名与 Postgres db

代码knexjs如下

将被翻译成下面的 SQL

但 PostgreSQL 只识别RESOURCES.ID,而不是"RESOURCES"."ID"有效列

这是一个已知的问题?除了使用 SQL raw 之外还有什么建议吗?

0 投票
0 回答
335 浏览

node.js - 使用 DB 事务的独立笑话集成测试

在我们的项目中,我们使用 Jest 编写了集成测试,它首先在 DB 中设置数据,运行测试逻辑,然后进行拆解。

因为这些测试可以并行运行,我们必须为每个测试创建具有唯一值的设置(例如,电子邮件必须是唯一的),以便它使用数据库中的唯一键。

我们的想法是模拟 DB 层并在每个测试开始之前为每个测试创建一个新事务,然后再回滚它,这样我们就不必担心独特的测试设置和拆卸。

我能够使用以下代码模拟我们的 DB 层(目前我们使用 knex),但我不知道如何在测试开始时创建事务,将其保存到某个“测试范围变量”,然后访问它并回滚它.

有人知道怎么做吗?

0 投票
3 回答
499 浏览

javascript - Knex.js 迁移问题:因`关系“knex_migrations”不存在而失败`

我已经在这个项目上成功使用了一段时间的 knex.js,这是我第一次遇到这个。我删除了所有迁移文件并删除了我的数据库(本地),而是使用 pg_dump 从我的 prod 数据库(不包括 knex_migrations 或 knex_migrations_lock 表)中获取 DDL 和所有数据。

我创建了一个新的迁移脚本并用于knex.raw粘贴所有 SQL。当我运行迁移脚本时,我得到以下信息:

error: insert into "knex_migrations" ("batch", "migration_time", "name") values ($1, $2, $3) - relation "knex_migrations" does not exist

此迁移脚本正在一个全新的数据库上运行。当我将脚本中的内容更改为基本 DDL 时,它可以正常工作。因此,关于 pg_dump 的结果并尝试使用 knex 运行它会导致它被炸毁。

这也不是大量数据,所以我不太确定哪里出错了 - knex 负责创建迁移表,我确保 DDL 中没有提及 knex 或迁移表.

任何建议将不胜感激 :)

0 投票
1 回答
154 浏览

javascript - 为什么我会收到“编译 FIRST 时检测到未定义的绑定。”?

我有一个包含 3 条路线的应用程序:注册、登录和仪表板;仪表板是受保护的路线。

在我的仪表板路线中,我正在创建一个将检索用户信息的发布请求。

在我的服务文件中:

在我的控制器文件中:

我收到此错误:

Undefined binding(s) detected when compiling FIRST. Undefined column(s): [user_id] query: select "user_name" from "users" where "user_id" = ? limit ?

我的表users有 4 列:user_id、user_name、user_email 和 user_password。

我的服务文件或控制器文件有什么问题?

0 投票
1 回答
363 浏览

node.js - 全局 Knex.raw 已弃用,使用 knex.raw (链接一个初始化的 knex 对象)

我正在使用knex并且pg我想从 node.js 调用 postgreSQL 函数,最好使用 knex。我用过

但我收到错误:

我还尝试了其他几种黑客方法,但我无法这样做。我的 sql 查询是

有人可以帮我吗?

0 投票
1 回答
18 浏览

node.js - 如何在 knexjs 中仅获得一些列值相同的行

我试图从我的表中获取不同的值

例如,在user_technical_skill我的表中

Technical_skill_id 为 11 的两列

但它不起作用。我再次得到查询中的两列我该如何解决这个问题?

0 投票
1 回答
23 浏览

javascript - 如何根据列值检查表中是否有任何记录?

我有user_technical_skill桌子。此表具有 id、user_id、technical_skill_id 和 Technical_skill_name 列。

当我从该表中获取所有数据时,我得到如下响应:

当我为某些用户发布新的技术技能时 - 例如对于具有 id 的用户, f4484810-28fd-4534-9b90-8f487f16ffaf我想检查此表中是否存在为他提供的行 - 因此检查该用户是否已经具有该 Technical_skill_id

我怎样才能做到这一点

0 投票
1 回答
35 浏览

javascript - 如何对对象属性数组进行排序?或颠倒对象属性

嘿,伙计们遇到了一个问题,需要一些帮助......我在尝试复制这个对象数组时遇到了麻烦......

我得到的结果是这样的

我这样做的方式是这样的:

当我创建一种将成分应用到我的工作中的方法时,它最终会颠倒过来……

我添加了这段代码来将成分推入一个数组,如果没有成分名称,它将返回一个空数组

我的问题是我如何才能在很大程度上扭转结果被打印出来的方式......在 steps 数组中。我可以看到它是按字母顺序排列的,我想让它看起来像上面的示例所示...我正在为此使用 javascript 并使用 knex 构建一个 DB 以及为 DB 使用 SQL ....

同时,如果你能帮助我的代码,如果它为空,我没有像鸡肉一样打印两次成分,如果你看到的话

0 投票
1 回答
764 浏览

typescript - Typescript Knex 缺少导出的成员

我最近刚刚使用 Typescript 进入 Knex,尝试Knex.Config在我的 knexfile.ts 中使用时出现此错误。“node_modules/knex/types/index”。Knex 没有导出的成员“配置”。

以下是我的相关文件的样子:

knexfile.ts:

tsconfig.json:

包.json:

我查看了许多不同的帖子,但似乎没有任何效果。包括确保导入能够import { Knex } from 'knex';与最新版本的 typescript 和 knex 一起使用。我什至尝试删除 node_modules 文件夹然后运行npm cache clean --force然后重新安装所有东西,我最终得到了同样的东西。

我还应该注意,如果我转到 node_modules/knex/types/index.d.ts 它已经有大量相同类型的错误“Knex 没有导出的成员'X'”。一些示例是 QueryBuilder、CreateTableBuilder、Transaction 和其他大量示例。

任何想法,将不胜感激。

0 投票
0 回答
48 浏览

node.js - 在 knex 中编写查询,我需要在插入查询中使用 where

这是原始查询,它正在工作 -

将此查询转换为 knex 查询,但是当我打印由 knex 构建的查询时,它避免了 where 子句。

knex 准备的查询 -

为列 - 创建了一个索引emp_id, plan_id, and responsibility != 'admin',因此我们需要编写 where 子句。