【发布时间】:2017-08-23 16:18:03
【问题描述】:
编辑 - 已编辑问题标题以反映问题的真实性质
我正在尝试重构我的 node.js 应用程序代码,并更好地利用 OOP 原则。在重构之前,mysql 驱动程序和连接(池)位于路由逻辑等上方的主 app.js 文件的顶部。我现在在下面创建了文件,并在主 app.js 文件中导入了这个并尝试使用该类。但是该类无法实例化。我是 JavaScript 类的新手,所以我可能犯了一个简单的错误。任何人都可以在这里看到错误吗?
const mysql = require('mysql');
class Database {
constructor(maxConnections) {
this._pool = mysql.createPool({
connectionLimit: maxConnections,
host: '',
user: '',
password: '',
database: ''
});
}
get Pool() {
return this._pool;
}
// static ExecuteSQL(sql, callback) {
// this.Pool.getConnection(function (err, connection) {
// connection.query(sql, function (err, rows, fields) {
// if (err) {
// callback(err, null, null);
// } else {
// callback(null, rows, fields);
// }
// connection.release();
// });
// });
// }
static Format(sql, args) {
return mysql.format(sql, args);
}
}
module.exports = {
Database,
}
数据库逻辑在重构代码之前工作,所以我认为这是与 JavaScript 类有关的错误。
【问题讨论】:
-
您遇到了什么错误?
-
我不知道,调试起来很尴尬 - 我正在部署它然后运行它(HTTP 500)。我尝试将实例化代码包装在 try...catch 块中,但它没有捕获错误
-
你是如何实例化类的?
-
const dbdriver = require('./db.js'), db = new dbdriver.Database(100);
-
module.exports = Database和导入为Database怎么样?
标签: javascript mysql node.js class oop