我有一个使用 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);
}
});
Run Code Online (Sandbox Code Playgroud)
但是当我运行该应用程序时,出现以下错误。
TypeError: connection.connect is not a function
Run Code Online (Sandbox Code Playgroud)
谁能告诉我如何解决这个错误?谢谢!
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"
}
}
Run Code Online (Sandbox Code Playgroud)
小智 5
看起来您想要使用 .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)
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10330 次 |
| 最近记录: |