mysql - 如何在 node.js 中使用带有 mysql 连接和池的单例设计模式

标签 mysql node.js express node-mysql

我正在使用 node-mysql 作为 orm。 ( https://github.com/mysqljs/mysql )

我正在使用 MySQL 和 Node.JS 创建一个 REST API。早些时候我使用 MongoDB 做了同样的事情。它工作正常。 github.com/chanakaDe/Mint-REST。现在我想用 MySQL 做同样的事情。我完成了大部分工作,但遇到了一些小问题。类比较多,需要集中使用mysql连接。作为单例设计模式。

这是我的新仓库。 https://github.com/chanakaDe/MintRestSQL .我将展示我想在哪里使用这些模式。我这里有数据库文件。我创建了一个新的连接池。 github.com/chanakaDe/MintRestSQL/blob/master/app/util/database.js。

现在我想在我的 Controller 类中使用这个连接/池。因为我无法在每个 Controller 类中创建连接。不 ?这些是我现在的两个 Controller 。 github.com/chanakaDe/MintRestSQL/blob/master/app/routes/report.js github.com/chanakaDe/MintRestSQL/blob/master/app/routes/api.js

请告诉我一个更好的方法来做到这一点。我是 node-mysql 的新手。但这是在 Node.JS 环境中使用 MySQL 的好方法,即使对于生产级系统也是如此。所以我想使用这些标准制作一个好的 API。有没有办法使用单例模式或类似的东西并集中连接并在所有 Controller 中使用它????

需要一些时间来检查我的文件并理解代码。但请检查并给我一个解决方案。我尝试了很多东西,但没有用:(

欢迎您拉回 repo 并进行任何更新

最佳答案

尝试将 database.js 更改为

var mysql = require('mysql');

mysql.createPool({
  host     : 'localhost', 
  user     : 'root',
  password : 'chanaka',
  database : 'shared_adult'
}).connect();

module.exports = mysql;

关于mysql - 如何在 node.js 中使用带有 mysql 连接和池的单例设计模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38495182/

相关文章:

MySQL 搞砸了输出

javascript - 如何 trim Mongoose 中单词之间的空格?

node.js - 如何使用 Node Promise 从 Oracle 返回多个结果集

mysql - WooCommerce:在数据库中查找产品

mysql - SQL 行数

node.js - 无法创建带有美元符号的独立 browserify 模块

node.js - 我可以对 Express 路线进行异常(exception)处理吗?

javascript - 使用 Express.js app.post 请求不起作用

php - 尝试将登录页面从 mysql_connect 更改为使用 PDO,但没有成功

javascript - 如何让nodejs返回对象 promise 以外的东西