首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用node.js和exports调用mysql数据库?

问如何使用node.js和exports调用mysql数据库?
EN

Stack Overflow用户
提问于 2016-05-09 04:51:20
回答 1查看 42关注 0票数 0

我正在开发一个应用程序接口与node.js,快速等,使用mysql数据库。我正在使用node-mysql连接数据库并对其执行查询。

为了有一个干净的代码,我把它分成了控制器和模型。但我面对的是:

models/user.js

代码语言:javascript
复制
var mysql      = require('mysql');
var connection = mysql.createConnection({
  host     : 'localhost',
  port     : 3307,
  user     : 'root',
  password : 'root',
  database : 'db'
});

User.prototype.blablabla = function() {
...
connection.query(...);
}

模型/admin.js

代码语言:javascript
复制
var mysql      = require('mysql');
var connection = mysql.createConnection({
  host     : 'localhost',
  port     : 3307,
  user     : 'root',
  password : 'root',
  database : 'db'
});

Admin.prototype.blablabla = function() {
...
connection.query(...);
}

问题是,我必须在每个文件上创建到我的数据库的连接,即使我只想要一个我调用的文件,当我完成时,我关闭它。

但是在这种配置下,使用使用回调和其他东西的控制器,我不能关闭连接。它总是在运行。

我正在寻找一种只使用数据库连接的一个实例的安全方法。这是一个很好的方法吗?我如何才能做到这一点?

EN

回答 1

Stack Overflow用户

发布于 2016-05-09 05:41:33

为这个连接信息创建一个特定的文件怎么样?

/connection.js

代码语言:javascript
复制
var mysql      = require('mysql');
var connection = mysql.createConnection({
  host     : 'localhost',
  port     : 3307,
  user     : 'root',
  password : 'root',
  database : 'db'
});

module.exports = connection;

因为require缓存了它加载的模块,所以连接只会打开一次。参考http://fredkschott.com/post/2014/06/require-and-the-module-system/

然后,请注意,要关闭连接,可以使用连接实例及其方法end

代码语言:javascript
复制
connection.end();

参考https://github.com/felixge/node-mysql

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37104675

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档