我正在尝试使用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
是undefined
。我认为this
关键字可以访问变量。我已尝试将this
访问方法替换为使用HttpServer._server
,但没有运气。任何提示或建议将不胜感激!
如果我犯了愚蠢的错误,请原谅我,在此之前我还没有跳过ES6火车!
答案 0 :(得分:1)
必须删除空检查
无需从构造函数
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)
})
}
}