首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JavaScript -从实例调用静态成员

JavaScript -从实例调用静态成员
EN

Stack Overflow用户
提问于 2017-08-24 00:18:04
回答 1查看 57关注 0票数 0

编辑-问题标题已进行编辑,以反映问题的真实性质

我正在尝试重构我的node.js应用程序代码,并更好地利用OOP原则。在重构之前,mysql驱动程序和连接(池)位于主app.js文件的顶部,位于路由逻辑等之上。现在我已经创建了下面的文件,并在主app.js文件中导入并尝试使用该类。但是,该类无法实例化。我是JavaScript类的新手,所以我可能犯了一个简单的错误。有人能看到这里的错误吗?

代码语言: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类相关的错误。

EN

回答 1

Stack Overflow用户

发布于 2017-08-24 01:33:07

这个问题并不准确,尽管如此,以下是解决方案:

问题是我试图调用db.Format(),而db是数据库的一个实例。使用JavaScript似乎不能从实例中调用静态成员。修复方法是调用Database.Format(),其中数据库是‘静态’类定义

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45844813

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档