问题标签 [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 投票
1 回答
5501 浏览

javascript - 异步等待 mysql2/promise 和结束连接

尝试使用 MySQL 数据库在 Node.Js 中开发 REST API。你能帮我写一些更好的代码吗?

这里有两个最重要的问题,

预测答案

如果我们尝试再次使用 “{ Error: Can't add new command when connection is in close state at PromiseConnection.execute”尝试再次访问 API,上述代码实现将产生错误

也许如果使用这种看起来很愚蠢的下面给出的方法,我们可以再次调用相同的 API n 而不会出现任何错误。

userModel.js 中还有很多函数,在这种情况下,我们必须创建并结束与每个 API 方法的连接。

任何建议都会有所帮助。问候,

0 投票
1 回答
32 浏览

gulp - 带有 node-mysql2 模块的 Gulp 4 任务导致服务器在连接时崩溃

我需要在 gulp 中运行 mysql 查询来检查表中的某些字段。我目前通过 ssh 隧道连接到开发服务器,该隧道通过终端打开,以便我的主机设置为“localhost”。

当我执行连接尝试时,隧道崩溃: 通道 4:打开失败:连接失败:连接被拒绝

然后服务器进程因内存不足错误而崩溃。

我们使用 node-mysql2 和 ssh 隧道在本地运行 GraphQL 进行测试,所以我想不出在 gulp 中有什么特别会导致从发送 gulp 命令开始几乎瞬间出现的竞争条件。

吞咽代码: 在此处输入图像描述

如果有人有任何见解,我将不胜感激。

0 投票
1 回答
3250 浏览

node.js - 节点 mysql2 async-await try catch

我的问题是关于在 Nodejs 中处理异步等待 mysql 查询中的错误。我正在使用 mysql promise wrapper 在 nodejs 中创建一个连接池。

不能调用内部捕获块连接释放,因为抛出错误说

如果查询执行抛出错误,是否需要释放catch块中的连接?如果是这样,使用mysql2释放连接并在异步等待中捕获错误的正确方法是什么?

0 投票
2 回答
520 浏览

node.js - How to correctly make multiple MySQL calls in a single request with Node.js, Express.js, MySQL2, and Promises

Looking at the correct/best/better way to use AWAIT with MySQL2 in a Node.js/Express.js app when I need to run multiple queries in a single request.

Early on in my app I create a Promise Pool from my Database config

Then, on a POST request I accept 2 values, both of which I need to verify are valid, and then take the returned ID's and INSERT them in to another table.

Below is was my first attempt but I am missing out on the JS's concurrently goodness. (I've overly simplified all the calls/SQL for demonstration purposes),

Here is my second stab at it, now wrapping the promises up.

The IF at the end still doesn't 'feel' right, but I need to know that the first two queries are valid otherwise I'll send the user to an error page.

What would be a better way to achieve the above result without forfeiting readability too much?

0 投票
1 回答
553 浏览

aws-lambda - mysql2 TypeError: f.ClientHandshake 不是构造函数

我正在尝试使用 mysql2 连接到 RDS MySQL 实例。当我在本地使用该软件包时,一切正常。但是,当我在 AWS Lambda 函数中使用它时,我得到了这个神秘的错误:

知道问题是什么吗?我相信角色/安全组都配置正确。

0 投票
1 回答
52 浏览

jwt - 将回调迁移到异步

我正在努力迁移一个验证 JWT 令牌然后使用解码的凭据进行数据库调用的 HAPI 函数。

问题是jwt.verify使用回调,但 Hapi 和 Hapi.MySQL2 都已更新为使用async函数

主要功能如下

验证令牌函数如下:

调试上面的所有内容,直到数据应该返回到前端。此时我得到一个ERROR 500

我知道问题出在VerifyToken函数上,好像我省略了这个并将decoded.id正确的数据硬编码到查询中一样到达前端。

任何指针?

0 投票
3 回答
1696 浏览

mysql - 在 MySQL 中插入行时,CURRENT_TIME 时间戳不正确,我使用的是 AWS RDS

编辑:这是我使用 node-mysql2 的 mysql 库的问题

我正在使用 AWS RDS 来托管 MySQL 数据库。

我的数据库中有一个具有以下定义的列

createdAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP

当我在美国东部标准时间下午 4:43 插入一行时,我得到该列的以下值

2018-12-27T02:43:32.000Z

当我尝试将此值转换为 EST 时,我得到

12/26/2018, 9:43:32 PM

这是不正确的。

我做错了什么还是我需要配置什么?

0 投票
1 回答
1845 浏览

node.js - 使用 async/await 冒泡和捕获异常的正确模式是什么?

我正在努力弄清楚在嵌套等待/异步例程中处理错误的正确模式是什么,同时保持代码简洁明了。(尽管阅读了无数的文章和博客)

我有一组功能(基本上)类似于以下内容:

_getCount 是创建 sql 的包装器

实际查询执行如下:

如果查询失败,方法conn.query(来自mysql2/promise库)将拒绝承诺。

所以,我的问题变成了处理异常的正确模式是什么?

在同步世界中,我对_execSQL_getCount 无能为力,只能在validate中捕获异常;只是自然地让异常冒泡。

但是,在异步世界中,如何在不出现“未处理的承诺”异常的情况下进行等效操作?

我是否坚持必须在每个异步例程中一直捕获错误?

或者有没有更好的方法而不使用process.on('unhandledRejection',...)感觉就像我在规避问题的东西?

编辑:添加示例和堆栈跟踪

好的,所以我实际上已将此代码添加到我的应用程序中,并将 try/catch 放入validate函数中。逐字代码是:

我有一个用于 unhandledRejection 的事件处理程序,它会报告事件以及内部异常以及堆栈跟踪。这是它转储出来的:

0 投票
0 回答
668 浏览

mysql - 更新 MySQL 返回受影响的行,但实际上并没有更新数据库 [ nodejs mysql2 ]

我有一个函数来运行带有承诺和更新查询的 mysql2 nodejs

这是输出

但在数据库中的值不会改变

这是我的 lambda 脚本

gist github 中的脚本

0 投票
4 回答
1431 浏览

javascript - 类型上不存在属性“长度”... mysql2 模块中的 OkPacket

我有类似的代码 - 非常简单,只是为了展示案例。

问题在于if (result.length === 0) {,错误是error TS2339: Property 'length' does not exist on type 'RowDataPacket[] | RowDataPacket[][] | OkPacket | OkPacket[]'.

我找不到任何方法来重新定义 OkPacket 至少length?: number 足以忽略该错误(大多数选择无论如何都没有得到 OkPackets,如果我知道的时候我得到的不是 OkPacket,我不想检查每个选择的类型这不是)...