我有一个使用ExpressJS(Express 4)框架开发的应用程序。我打算使用连接池而不是单个连接,听说它允许我们重用现有的数据库连接,而不是为Node应用程序的每个请求打开一个新的连接。
所以在现有的代码中,我做了一个改变。
在以下代码中将mysql.createConnection
替换为mysql.createPool
注意:这只是建立数据库连接的应用程序的一部分。
var mysql = require('mysql'),
connection = mysql.createPool({
host: 'localhost',
user: 'root',
password: '',
database: 'test_db',
port: 3306
});
connection.connect(function (err) {
if (err) {
console.log(err);
}
});
但是当我运行应用程序时,我收到了以下错误。
TypeError: connection.connect is not a function
有谁能告诉我如何解决此错误?谢谢!
Package.json文件
{
"name": "testapp",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "hola"
},
"author": "user",
"license": "ISC",
"dependencies": {
"body-parser": "^1.18.2",
"cake-hash": "0.0.6",
"compression": "^1.7.1",
"cors": "^2.8.4",
"express": "^4.16.2",
"https": "^1.0.0",
"moment": "^2.19.2",
"morgan": "^1.9.0",
"mysql": "^2.15.0"
}
}
答案 0 :(得分:3)
看起来像你想要的池.getConnection()而不是.connect()。
来自mysql包文档:
var mysql = require('mysql');
var pool = mysql.createPool({
host : 'example.org',
user : 'bob',
password : 'secret',
database : 'my_db'
});
pool.getConnection(function(err, connection) {
// connected! (unless `err` is set)
});
答案 1 :(得分:0)
一旦你做了
connection = mysql.createPool
已建立连接,您可以使用
之类的连接进行查询connection.query('SQL Query', function (error, results, fields) {
if (error) throw error;
console.log('The solution is: ', results[0].solution);
});