javascript – 在ES6类中共享函数之间的变量

我正在使用Node.js中的ES6语法.作为一个起点,我只是尝试创建一个配置并返回Express服务器的简单类 – 但不确定这在生产中是否合适.

我在访问其他函数中的类成员变量时遇到问题.看看下面的代码

import express from 'express'
import http from 'http'

const _server = null
const _app = null

class HttpServer {

    constructor (port) {
        this._port = port;

        if (this._app === null) {
            this._app = express()
        }

        if (this._server === null) {
            this._server = http.createServer(this._app)
        }

        return this._server
    }

    start (callback) {

        this._server.listen(this._port,(error) => {
            return callback(error)
        })
    }

}

export default HttpServer

构造函数似乎工作正常,但是当我调用start方法时,我得到一个错误,即变量this._server未定义.我认为this关键字可以访问变量.我已经尝试将此访问方法替换为使用HttpServer._server,但没有运气.任何提示或建议将不胜感激!

如果我犯了愚蠢的错误,请原谅我,在此之前我没有跳过ES6火车!

解决方法

>必须删除检查null
>无需从构造函数返回任何内容

class HttpServer {

    constructor (port) {
        this._port = port
        this._app = express()
        this._server = http.createServer(this._app)
    }

    start (callback) {
        this._server.listen(this._port,(error) => {
            return callback(error)
        })
    }

}

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...