Node.js + mysql 连接池

2023-11-29

我正在尝试找出如何构建我的应用程序以最有效地使用 MySQL。我正在使用 node-mysql 模块。这里的其他线程建议使用连接池,所以我设置了一个小模块 mysql.js

var mysql = require('mysql');

var pool  = mysql.createPool({
    host     : 'localhost',
    user     : 'root',
    password : 'root',
    database : 'guess'
});

exports.pool = pool;

现在每当我想查询 mysql 时我都需要这个模块,然后查询数据库

var mysql = require('../db/mysql').pool;

var test = function(req, res) {
     mysql.getConnection(function(err, conn){
         conn.query("select * from users", function(err, rows) {
              res.json(rows);
         })
     })
}

这是个好方法吗?除了非常简单的一个(一切都是在主 app.js 脚本中完成的)之外,我真的找不到太多使用 mysql 连接的示例,所以我真的不知道约定/最佳实践是什么。

我应该在每次查询后始终使用connection.end()吗?如果我忘记在某个地方怎么办?

如何重写 mysql 模块的导出部分以仅返回一个连接,这样我就不必每次都编写 getConnection() ?


这是一个很好的方法。

如果您只想获得连接,请将以下代码添加到池所在的模块中:

var getConnection = function(callback) {
    pool.getConnection(function(err, connection) {
        callback(err, connection);
    });
};

module.exports = getConnection;

每次还是要写getConnection。但是您可以在第一次获取连接时将其保存在模块中。

使用完毕后不要忘记结束连接:

connection.release();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Node.js + mysql 连接池 的相关文章

  • 从文件中抓取随机行

    我不知道该怎么做 我应该从哪里开始 我用谷歌搜索了这个 但没有找到关于如何从文本文件中提取随机行的结果 我唯一发现的是https github com chrisinajar node rand line https github com
  • 保存用户的身高和体重

    我应该如何将用户的身高和体重存储在MySQL数据库中 以便我可以使用这些信息来查找特定身高或体重内的用户 另外 我需要能够以英制或公制显示此信息 我的想法是存储以厘米为单位的身高和以公斤为单位的体重信息 我更喜欢公制而不是英制 我什至可以让
  • SetCookie 标头未存储

    我目前正在制作一个 Web 应用程序 其中 API 为 Node express js 前端为 Vue js 对于身份验证 我设置了 JWT 并通过 cookie HttpOnly 发送值 SetCookie 位于 Chrome Firef
  • 工厂模式数据库连接

    我正在尝试使用 MySQL 实现数据库连接上的工厂模式 SQL Server 面临奇怪的错误 你调用的对象是空的 在 SQL 命令对象上 internal class SqlServerDB IDatabase private SqlCon
  • PHP/MySQL:检索邻接列表模型中的单个路径

    有没有什么有效的方法可以在不限制深度的情况下根据节点的ID检索邻接列表模型中的单个路径 就像如果我有一个名为 Banana 的节点的 ID 我可以获得以下路径 Food gt Fruits gt Banana 如果不可能的话也不是什么大问题
  • 如何在 sails.js 中维护多个 API 版本

    有人有关于在使用 sails js 时维护 API 的多个版本的想法吗 想象一个简单的例子 例如 Request GET api v1 catVids min view count 10000 Response video title to
  • 如何使用 Node.js 异步服务多个 QBWC 客户端

    这个想法是使用 Node js 实现 QBWC Web 服务 它可以以异步方式服务多个传入请求 目前我正在研究qbws https github com johnballantyne qbws 这是 QuickBooks Desktop W
  • Mysql - 如何比较两个 Json 对象?

    将整个 MySql json 列与 json 对象进行比较的语法是什么 以下不起作用 select count criteria from my alerts where criteria industries 1 locations 1
  • Nodejs 提供 1 个 api 端点和 1 个 html 页面

    这是我的问题 我从来没有在不使用express的情况下在node中写过东西 所以我发现很难创建一个具有基本API的服务器 我在网上找到的基本上是这样的 var http require http http createServer func
  • 一次将多个值插入MySQL [重复]

    这个问题在这里已经有答案了 谁能解释一下为什么这个 PHP MySQL 不起作用 基本上我需要从表单中一次插入大量行 因此会有多个名称字段 多个短 中 长字段等 我收到此错误 Notice Undefined variable Short1
  • SimpleSAMLPHP 重定向循环

    我们正在尝试使用自定义 mysql 数据库设置 sso 但它在以下两个请求之间进入无限循环 POST http 192 168 0 15 simplesaml module php core loginuserpass php 设置Cook
  • 使用 Hibernate Dialect 设置表字符集/排序规则?

    我使用 Hibernate MySQLInnoDB Dialect 来生成 DDL hibernate cfg xml
  • Javascript/Node 中从不执行用户代码的隐藏线程:是否可能,如果可能,是否会导致竞争条件的神秘可能性?

    根据评论 答案 请参阅问题底部的更新 这个问题实际上是关于可能性的hidden不执行回调的线程 我有一个关于潜在的神秘场景的问题 涉及节点请求模块 https www npmjs com package request其中 A 构建完整的
  • 使用 Sequelize.js 和 PostgreSQL 查询关联模型上的 JSONB 字段

    我有我的两个模型Foo and Bar Foo有一个字段barId 因此有一个Bar与其关联的对象 我可以查询我所有的Foo对象并包括它们的关联Bar对象如此 我正在使用 TypeScript续集打字稿 https github com R
  • 节点持久-NodeJS

    谁详细向我解释了如何操作以下说明 var storage require node persist var account username Morris password test storage initSync storage set
  • $_SESSION 中保存大量信息可以吗?

    我需要存储许多数组 SESSION以防止从 MySQL 检索信息 可以吗 其中 太多 的信息有多少 SESSION还是没有 太多 谢谢 附 或者更好地使用http php net manual en book memcache php ht
  • 如何在node.js中找到两个地理点之间的距离?

    如何使用 node js 查找两个地理点 经度和经度的集合 之间的距离 我有使用谷歌地图距离矩阵服务的客户端 JavaScript 代码 我想在服务器端javascript中做同样的事情 在node js router js或datamod
  • NodeJS 和 PHP (Laravel) 集成用于 Socket.IO 实时聊天

    目前我有一个我写过的网站PHP通过Laravel 框架 我已经使用写了一个实时聊天nodeJS with 套接字IO and Express现在我想做的是将它集成到我已经编写的 Laravel 网站中 问题是聊天必须在主页中 当前由 Lar
  • 如何在nodejs中处理大量对象

    我想处理长度约为 100 000 的数组 而不会给 CPU 带来太多负载 我研究了流并偶然发现了 highlandjs 但我无法使其工作 我也尝试过使用 Promise 和分块处理 但它仍然给 CPU 带来很大的负载 如果需要 程序可能会很
  • Microsoft SQL 数据库的 WebSocket 侦听器

    我目前正在开发一个项目 该项目必须使用 WebSockets 作为将数据传输到客户端的方式 基础设施看起来像这样 客户端 gt Web 服务器 gt Microsoft SQL 数据库 我想最理想的情况应该是这样的 客户端打开一个到服务器的

随机推荐

  • 创建应用程序/产品配置的设计模式/指南

    我想知道是否有任何设计模式 指南或记录的widsom 最佳实践来创建 应用程序配置 结构 数据和文件 我意识到这个问题在一些帖子中已经部分涉及 但我希望以下问题能够促使人们从另一个方面看待这个主题 基本上 创建配置结构需要进行什么样的分析
  • Postgres 更新列数据时出错

    尝试在表上运行更新脚本 但出现错误 错误 ok 列不存在 第 2 行 设置first name ok last name pk 电子邮件 ooo 电话 CREATE TABLE employee employee id SERIAL PRI
  • 验证码 + RequireJS

    如何使用 requirejs 导入 recaptcha 我已经尝试了几件事 但没有任何效果 我需要这样做 以便能够在加载后使用 reCaptcha 的渲染方法自行渲染它 require config paths recaptcha http
  • 警告您的 Apk 正在使用需要隐私策略的权限:(android.permission.READ_PHONE_STATE)

    在清单中未添加 android permission READ PHONE STATE 允许 为什么当我上传新的 apk 版本时出现错误 如下所示 您的应用有一个版本代码为 1 的 apk 该 apk 请求以下权限 android perm
  • 以编程方式在 TFS 中添加新迭代

    我可以通过右键单击项目并转到 团队项目设置 gt 区域和迭代 gt 迭代 选项卡 手动将新迭代添加到 TFS 中的团队项目 是否有一个示例说明如何使用他们的 API 以编程方式执行此操作 Thanks 经过基于 taylonr 链接的一些实
  • as_list() 未在 y_t_rank = len(y_t.shape.as_list()) 上的未知 TensorShape 上定义且与指标相关

    TF 2 3 0 dev20200620 对于具有 sigmoid 二进制输出的模型 我在 fit 期间遇到此错误 我使用 tf data Dataset 作为输入管道 奇怪的是它取决于指标 不工作 model compile optimi
  • JPA。 Stackoverflow 上的级联合并

    这是我的 JPA 结构 电影 查看级联类型 Entity Table name movie public class Movie Id Column name movie id GeneratedValue strategy Generat
  • 关闭 Mac Objective C

    我需要能够实现以下方法 Shutdown Restart Logoff Sleep 在 Mac 上 我使用 XCode 但似乎无法找出执行这些操作的代码 有人可以帮我从这里出去吗 Thanks 一个简单 懒惰的方法是通过一些简单的内联App
  • 如何在 firestore 9 中将具有自定义 ID 的文档添加到 firestore

    如何将自定义 id 添加到 firestore 文档而不是由 firebase 9 自动生成的 id 我在将此代码转换为 firebase 9 版本时遇到问题 db collection cities doc LA set name Los
  • 成员名称不能与其在 g.cs 文件中的封闭类型相同

    我已经在 StackOverflow 中搜索过此问题的解决方案 但显然这次有所不同 在我的 Windows Phone 应用程序中 当用户按下特定按钮时 应用程序应将他重定向到特定的全景页面 因此我按照以下步骤操作 http blogs m
  • 如何使用java中的for循环从类创建新对象?

    我有一个名为 Card 的类 并且有这个 for 循环 int i for i 0 i lt 13 i Card cardNameHere new Card 我想做的是基于 for 循环创建新实例 例如 我希望名称为 card1 card2
  • Apache Kafka 中 Producer.properties 和 Consumer.properties 文件的使用

    Kafka 包内有一个 config 文件夹 其中包含各种配置文件 该文件夹包含 Consumer properties 和 Producer properties 文件 这些配置是在我们运行 Kafka 集群以及我们的代码连接到 kafk
  • MySQL:嵌套集很慢?

    我有一个看起来像这样的表 category 类别 id name 类别 seo 友好 url left id right id 当我运行这样的查询时 大约需要1秒 SELECT node category id AS node catego
  • Gnuplot:二维矢量图的可变颜色(和线宽)

    我正在尝试创建一个 2D 矢量图variablegnuplot 版本 4 4 中的颜色 和线宽 我查看了示例以获取要点 splot vectors dat u 1 2 3 4 rgb 5 6 7 w points pt 7 pointsiz
  • 如何从 json url 获取值

    我正在使用 AngularJS 我想动态获取价格的值 我的意思是从 url json 数据中获取它 这可能吗 这是url json url 这是我的控制器 angular module myApp zingchart angularjs c
  • 删除临时表后可以重新创建它吗?

    Given 存储过程中的代码 select bleh into tblTemp from FunctionThatReturnsTable some params do some stuff drop table tblTemp Error
  • SonarRunner with gradle:无法从服务器下载库

    我已经更新了Sonar到 4 5 1 LTS 版本 现在在我的 gradle 任务中出现以下错误并且无法修复它 Fail to download libraries from server 带有声纳运行器的 build gradle son
  • 如何将所有未版本控制的文件“svn 添加”到 SVN?

    我正在寻找一种好方法来自动将工作副本中的所有未版本化文件 svn 添加 到我的 SVN 存储库 我有一个实时服务器 可以创建一些应受源代码控制的文件 我想要一个简短的脚本 我可以运行它来自动添加这些内容 而不是一次逐一添加它们 我的服务器正
  • 在 Firefox 中获取停用的滚动条

    我有一个 Javascript 选项卡式对话框 其页面具有不同的高度 其中一些比浏览器窗口高 在 Internet Explorer 中 右侧始终有一个滚动条 当不需要时 它会显示为灰色 页面尺寸保持不变 没有问题 在 Firefox 中
  • Node.js + mysql 连接池

    我正在尝试找出如何构建我的应用程序以最有效地使用 MySQL 我正在使用 node mysql 模块 这里的其他线程建议使用连接池 所以我设置了一个小模块 mysql js var mysql require mysql var pool