[英]ES6 class method not present in instance
我正在更新舊的node.js項目以包括ES6功能,以便最終遷移到打字稿,但是我無法使此類工作。 我在單獨的文件中定義了一個類:
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
屬性。 我想念什么?
謝謝和最好的問候
_getConnection
屬性屬於的原型database
, 因此這個屬性是的不可枚舉屬性database
。
您可以通過以下方式訪問此屬性
console.log(database._getConnection) //should show the function
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.