问题标签 [node-mysql2]

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 投票
2 回答
3168 浏览

javascript - 调用异步函数 main 的正确方法?

我有一些 nodejs 脚本 - 即完成工作并完成而不是连续运行的进程。

我使用异步函数,例如:

是以下代码:

开始执行异步代码的最佳/正确方法?

(它有效,但我想确保我不会留下任何可能导致意外的漏洞,例如被默默吞下的异常。)

为什么conn.execute() 返回一个error(我需要手动检查)而不是抛出一个?

0 投票
0 回答
66 浏览

javascript - 从快速路由中的事件侦听器捕获异常

我正在为我的应用程序使用 nodejs、express 和 node-mysql2。我希望每个连接的时区都使用 UTC,以便我的 time_created 和 time_modified (MYSQL: On update CURRENT_TIMESTAMP) 列仅具有 UTC 时间戳。我无权设置 MYSQL 服务器的时间戳,因此我只需要在我的应用程序中执行此操作

我正在使用连接池并为连接事件添加一个事件侦听器,该事件侦听器将该连接的时区设置为 UTC。

我的路线定义与此类似:

如果事件侦听器中的此查询“SET time_zone='+00:00'”失败,我的节点服务器会因控制台上的堆栈跟踪而崩溃。我想在我的路线或任何地方捕捉到这种错误,以便我可以向客户发送 500 响应。你能告诉我什么是处理快速路由中事件监听器抛出的这种异常的好方法吗?

0 投票
3 回答
688 浏览

mysql - MySQL NodeJs - 让 rows.each 工作的正确方法

当我寻找简单的例子时,每个人的风格似乎都大不相同。我尝试了 2 种不同的风格,并遇到了 2 个不同的问题。在下面的代码中,我已经确定了代码的来源以及它在注释中出现的错误。我注释掉或取消注释每个部分并单独运行,但每个部分都有自己的错误。“console.log(rows);”语句正在显示数据,因此查询本身正在运行和工作。

0 投票
1 回答
75 浏览

node-mysql2 - MySQL2 库 NodeJS - 更新失败且无错误 & RowsAffected on async call

非 Async 时获取 AffectedRows 的方法如下所示:https://github.com/mysqljs/mysql/issues/363

下面是我的代码-更新后控制台中没有任何console.logs显示在控制台中,某些列没有在数据库中更新,也没有遇到错误或try catch。如果有错误,为什么我看不到它,否则,为什么我看不到 AffectedRows?

这是从另一个异步函数调用的。

我想我已经改进了代码,但同样的问题。非错误,connection.query 后没有 console.log 语句出现。

0 投票
1 回答
275 浏览

mysql - NodeJS mysql2“错误:未选择数据库”

我目前正在尝试使用用于数据库连接的 mysql2 包制作一个小的 Discord Bot。当我这样设置我的数据库时:

(我的 .env 文件中的数据是 100% 正确的)然后执行如下查询:

( client.database= con) 这只是给我错误“未选择数据库”,即使我在创建连接时选择了数据库。

0 投票
1 回答
27 浏览

mysql - 需要链中承诺的数据

我承诺在 express 上使用 mysql2 从 mysql 数据库中获取数据。运行另一个查询后,我需要将第一个查询中的数据获取到最终返回的对象中。

我需要任务对象中“结果”的值,但我无法从“foo”访问结果数据。

0 投票
1 回答
811 浏览

node.js - RDS Serverless 和 MySQL 连接池问题

我最近用我的基于 node-js 的聊天引擎尝试了一个 RDS 无服务器,除了一个问题之外,几乎一切都正常。

我如下创建我的 MySQL 连接池,

问题是 RDS serverless DB Count 只是不断增长,因此它认为服务器很忙并且无缘无故升级到下一个级别。当它达到 2000 时,它只是回到 0 并重新开始,我认为问题是连接池即使没有用户使用它也能保持连接活跃,这很好,这就是连接池的设计使用方式,但是在无服务器云环境理想情况下我希望连接在特定时间后过期,我找不到任何文档

有人说要减少 DB 参数等待超时,但没有一个真正起作用。请参阅下面的我的数据库变量

关于如何解决这个问题的任何想法?

0 投票
2 回答
1105 浏览

node.js - node-mysql2、AWS.RDS.signer 和连接池

我将node-mysql2 库与AWS.RDS.signer结合使用。

我有以下函数,它为重用连接创建了一个连接池:

它工作得很好......一段时间。然后我突然开始收到这个错误:

错误:用户 '...'@'...' 的访问被拒绝(使用密码:是)

所以,我认为正在发生的事情是,aws 签名者返回的令牌仅在短时间内有效,不能用于在池中不断地重新建立连接。

我可以看到,无法使用 aws sdk 配置 rds 令牌的 ttl。因此,我能想到的唯一其他选择是以某个固定间隔完全结束并重新创建池。

我想知道是否有人可能已经为此苦苦挣扎,并且谁可能对解决此问题的最佳方法有所了解?有没有更好的方法将 rds 签名器与连接池结合使用?

0 投票
1 回答
1379 浏览

node.js - 如何处理 Node.js 中关闭 MySQL 连接的错误?

我已经构建了一个连接到 MySQL 数据库的 Node.js API。我使用node-mysql2作为驱动程序。API 和数据库在单独的 Docker 容器中运行。在 Kubernetes 集群中部署后的某个时间点,我收到以下错误:

我想知道为什么会发生此错误以及如何使用 Node.js 捕获和处理它。这些是我的 Node.js API 的代码片段:

你知道如何处理这个错误吗?

0 投票
1 回答
234 浏览

node.js - 将参数传递给mysql连接字符串

下面是我的代码(在文件 db.js 下)

要使用它,我只需var db = require('./../db.js');在需要它的文件顶部添加。此外,下面是我如何执行任何 sql 语句

但现在我需要根据国家/地区分离我的数据库。所以我的数据库将以mydatabase_+国家代码命名,例如mydatabase_mymydatabase_jpmydatabase_uk。那么我如何将国家代码传递给function connection()

我尝试了类似的东西

在调用页面上,我做到了

但对于上述内容,我会得到ReferenceError: country is not defined哪个是指国家/地区const pool = connection(country);