createConnection如何与mysql中的nodeJS一起使用?

createConnection是做什么的?

var connection = mysql.createConnection({ host : 'example.org', user : 'bob', password : 'secret' }); 

我正在使用mysql模块在nodeJS中编写应用程序。 我有一些自己的模块,例如authentication ,它们定义需要数据库连接。 问题是:如果我有多个模块,我使用这个方法来创build连接,它是否会为我创build一个新的连接或使用第一个? 如果创build,它创build它第一次加载我自己的模块或每次? 哦,如果它创造什么时候会被摧毁?

以下是我在authentication模块中的使用方法:

 var config = require('./config.js'); var mysql = require('mysql'); var connection = mysql.createConnection(config.connectionString); exports.login = function() ... 

我对模块和自己的模块如何工作有一些基本的理解错误。

感谢您的答案。

您可以在一个模块中创build一个连接池,然后在所有模块中共享该池,并在需要时调用pool.createConnection()。 这可能比保持一个单独的,共享的连接总是开放的更好。

我正在做的一个项目是这样的:

utils的/ database.js

 var mysql = require('mysql'); var pool = mysql.createPool({ connectionLimit: 100, host: 'localhost', user: 'xxxxx', password: 'yyyyy', database: 'zzzzz', debug: false }); module.exports = pool 

accounts.js

 var express = require('express'); var router = express.Router(); var pool = require('./utils/database'); router.get('/', function(req, res) { pool.createConnection(function(err, connection) { // do whatever you want with your connection here connection.release(); }); }); module.exports = router; 

我正在玩的另一种方式是这样的:

utils的/ database.js

 var mysql = require('mysql'); var pool = mysql.createPool({ connectionLimit: 100, host: 'localhost', user: 'xxxxx', password: 'yyyyy', database: 'zzzzz', debug: false }); var getConnection = function(callback) { pool.getConnection(function(err, connection) { callback(err, connection); }); }); module.exports = getConnection; 

accounts.js

 var express = require('express'); var router = express.Router(); var createConnection = require('./utils/database'); router.get('/', function(req, res) { createConnection(function(err, connection) { // do whatever you want with your connection here connection.release(); }); }); module.exports = router; 

每次你调用connection.connect()它都会创build一个新的连接。 当程序退出时连接被销毁,或者connection.end()被调用。 如果你想重新使用连接,你可以把连接逻辑放在一个单独的模块中,然后像这样直接导出连接。

在一个名为connection.js的文件中

 var mysql = require("mysql"); var connection = mysql.createConnection({ host : 'localhost', user : 'user', password : 'password' }); connection.connect(); module.exports = connection; 

然后在任何客户端文件中:

 var connection = require("./connection.js"); connection.query('some query', callback); 

每个需要connection.js的文件将重新使用现有的连接。