簡體   English   中英

ES6類方法在實例中不存在

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM