Node.js:要求一个类不起作用

时间:2016-11-24 14:03:59

标签: javascript node.js ecmascript-6

您好我正在尝试使用es6类创建node.js服务器。 由于某些原因,要求我的服务器类不起作用,我无法弄清楚它为什么不起作用。

PS:要求配置按预期工作。

节点版本: 5.7.0

Server.js:

"use strict"
const express = require('express')
const path = require('path')



class Server {

    constructor(configuration) {
        this.title = "Points Dashboard";
        this.app = express();
        this.configureAuthentication(configuration)
    }

    listen(port, callback) {
        this.app.listen(port, callback);
    }
}

module.exports = Server;

app.js:

"use strict"

const configuration = require('./lib/configuration');
const Server = require('./lib/Server')

const server = new Server(configuration)

server.listen(configuration.server.public_port, () => {
    console.log(`Server running on ${configuration.server.public_url}, internal port ${configuration.server.public_port}`)
})

错误:

  

TypeError:服务器不是函数

     

... callstack

     

at Object。 (/root/app.js:6:16)

Project Strcuture:

enter image description here

调试日志:

enter image description here

1 个答案:

答案 0 :(得分:0)

最后我发现了错误并且它真的是一个愚蠢的错误。 我上面发布的代码是正确的。我在这个问题中没有提到的是,我正在使用码头工具。在编写我的docker文件时,我忘了添加一行来同步我本地计算机上的代码和在容器内运行的代码。在我创建容器的时候,我忘了添加module.exports = Server;,这就是为什么require不起作用的原因。

我正在使用visual studio代码调试docker容器中的代码,但由于我从未在app.js中更改过某些内容,因此我无法看到容器内部运行的代码与我的本地代码不同。

感谢您的帮助!