问题标签 [knex]
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.
node.js - 从纯 SQL 查询转换为 knex.js
我们在 node.js 中使用 knex.js 进行数据库查询。我有一个可以正常工作的普通 sql 查询。我需要将这个普通的 SQL 查询转换为 knex.js。我是 knex.js 的新成员。我尝试了不同的方法让它工作,但它没有工作。这是普通的sql查询:
我只需要 knex 格式的这个查询。提前致谢
knex.js - Knex.js Postgres 计数相交结果
我有一个 knex.js 查询,如下所示:
查询运行并返回正确的结果。我需要的是在同一个查询中计算这些结果。我尝试.count()
在最后追加,但它会引发错误。
webpack - node-polyfill-webpack-plugin 在 webpack.config.js 中无法识别
我正在尝试将 knex 用于电子应用程序中的 sqlite 本地存储,并且由于 knex 使用了一些在 webpack v5 上存在的 polyfll 组件,因此收到了“重大更改”消息。听说可以使用 node-polyfill-webpack-plugin 把 polyfill 放回去。对于这个项目,我在根目录下创建了一个“webpack.config.js”,并在里面放了以下内容:
这是我的 package.json:
但是,当我运行“npm start”时,我仍然会收到所有 webpack 重大更改消息。
任何帮助将非常感激。直到我尝试使用任何类型的本地存储(例如 sqlite 或 NEDB)并在 Stack Overflow 上进行了广泛的搜索并尝试了其中一些建议的方法(实际上是 node-polyfill-webpack-插件来自阅读这个网站)但我仍然无法让它工作。
postgresql - Heroku Postgres 未与 Knex 连接
我正在构建一个简单的后端服务器,我之前使用 heroku 部署了它。除了部署服务器,我还创建了一个包含所有我需要的表的 heroku postgres 数据库。当我尝试使用 knex 将数据库连接到服务器时出现问题;即使它在本地端口中运行时可以工作,但如果我使用我的 heroku postgres 数据库,我在尝试注册时会在前端获取错误。在这里,我分享了我的服务器代码以及 package.json 和 heroku 日志。希望提供的信息是足够的,并且事先,我非常感谢我能得到的任何帮助。
database - 删除表时,Knex 迁移不起作用
我有以下在数据库中创建表的迁移文件,该文件名为20211215154722_assist_tracking.js:
我有另一个将数据填充到上面创建的表中的迁移,此文件名为20220120190740_ttp-balances.js :
据我所知,当我执行以下命令时:knex migrate:latest
所有迁移都是按顺序完成的(按创建时间顺序)。正如我们所看到的,第一个文件应该首先运行,然后是第二个文件。问题如下:
当我删除表(使用knex migrate:down 20211215154722_assist_tracking.js
),运行表迁移knex migrate:up 20211215154722_assist_tracking.js
(基本上再次构建表),然后尝试使用填充数据knex migrate:up 20220120190740_ttp-balances.js
时,它不起作用。但是,当我使用 删除数据knex migrate:down 20220120190740_ttp-balances.js
,然后使用 再次填充knex migrate:up 20220120190740_ttp-balances.js
,而不删除表格时,效果很好。似乎删除了表,打断了流程,即使重新创建了表,以后也不会填充数据。为什么会发生这种情况?
node.js - 使用带值的 knex WITH 语句
将 Knex 与 postgresql 数据库一起使用。我正在尝试构建一个类似这样的查询:
我正在尝试像这样进行 WITH 调用:
inc 是我从另一个调用构建的字符串,如下所示:(some_id1),(some_id2), ect
更新 knex 后,它消除了错误,但仍然给出了错误的 sql。上面的 WITH 调用给出了以下内容。
包含(form_id)作为(值(1083))选择*
除了 raw 之外,似乎没有其他方法可以在 WITH 中使用带有 knex 的 VALUES。
javascript - knex 迁移 - 'ER_INVALID_DEFAULT:'timestamp' 的默认值无效
我有一个 knex chema 迁移来创建一个表,其中一行 -
我收到一个错误ER_INVALID_DEFAULT: Invalid default value for 'timestamp'
我试图给出默认值 null 并删除 notNullable() 或默认值 CURRENT_TIMESTAMP 但似乎没有任何效果(也许我的语法错误?)
我会很感激任何帮助!
javascript - 在没有 npm 的情况下使用 knexjs
我正在探索 JS 生态系统中的库,以使用另一种格式的所需信息构建 SQL 查询(DDL 和 DML)。我发现 KnexJS 对不同的 SQL 方言具有全面的支持,但我发现的所有示例都是从使用 npm 将其作为依赖项安装开始的。
当前的项目设置不是 npm(实际上,没有任何类型的包管理器),我现在不想介绍 npm。此外,仅添加 knex 就会带来 22 个其他软件包。是否有任何可用于我的用例的无依赖/缩小二进制文件?我搜索了 GitHub 存储库和发布页面,看看他们是否发布了此类内容,但找不到任何内容。
PS:我的用例是构建查询并将它们复制到剪贴板,用户可以以任何他们想要的方式使用它们。
sql - 如何使用 CASE WHEN 与书架聚合
我正在使用 PostgreSQL 和 bookshelf 并尝试运行一个简单的 SQL 查询,以便在单个查询中获得多个计数。此查询如下所示:
在书架CASE
的函数中做语句似乎是不可能的。sum()
我试过了:
这将返回以下查询:
由于 ) 后的引号,这不起作用sum("
。
有谁知道如何在不使用原始查询的情况下完成这项工作?