我正在更新我的旧node.js项目以包含ES6功能,以便最终迁移到typescript,但我无法让这个类工作。我在一个单独的文件中定义了一个类:
class Database {
constructor(connectionPool) {
this._connectionPool = connectionPool;
}
_getConnection () {
console.log("getting connection");
return new Promise((resolve, reject) => {
this._connectionPool.getConnection((err, connection) => {
if (err) {
reject(err);
console.log("connection rejected");
} else {
console.log("connection resolved");
resolve(connection);
}
});
});
}
}
module.exports = Database;
然后我将此类导入另一个文件并尝试创建数据库实例:
const mysql = require('mysql');
const Database = require('./database');
module.exports = databaseInitializer;
function databaseInitializer(config) {
const pool = mysql.createPool(config);
const db = new Database(pool);
console.log(Database.toString());
console.log(db.__proto__);
return db;
}
最后,我使用上面的函数来获取数据库实例:
const database = require('./models/databaseInitializer')(mysqlConfig);
console.log(database);
现在,我的数据库实例具有_connectionPool
属性,但没有原型,更重要的是没有_getConnection
属性。
我错过了什么?
谢谢和最好的问候
答案 0 :(得分:0)
_getConnection
属性属于database
和的原型,因此此属性是database
的非可枚举属性。
您可以通过
访问此媒体资源console.log(database._getConnection) //should show the function