【问题标题】:module.exports http not defined when creating server创建服务器时未定义 module.exports http
【发布时间】:2015-12-11 01:01:12
【问题描述】:

我正在尝试了解如何在 nodejs 中使用 module.exports。我在 app.js 中有这行代码

// Creating the server 
var createServer = require('./moduleExports/creatingServer');
createServer();

这段代码在另一个文件中,createServer.js

module.exports = function() {

socketServer = http.createServer(app).listen(app.get('port'), app.get('ip'), function() { 
    console.log("Express server listening at %s:%d ", app.get('ip'), app.get('port'));
}); 

}

还有更多,但我删掉了。当我运行node app.js 时出现错误,这表示http 未定义。我在 app.js 文件中需要它。

【问题讨论】:

    标签: node.js express node-modules


    【解决方案1】:

    将您的 creationServer.js 更改为:

    var http = require('http');
    module.exports = function() {
    
        socketServer = http.createServer(app).listen(app.get('port'), app.get('ip'),     function() { 
            console.log("Express server listening at %s:%d ", app.get('ip'),     app.get('port'));
       }); 
    
    }
    

    Node.js 文件不知道自身之外的代码。 require('http') 拉入该模块并允许您在文件中使用它。

    您还使用了 app 变量,这对于基本的 http 服务器来说并不是真正需要的,并且看起来您从 express 示例中复制了代码?

    【讨论】:

    • 那很奇怪,我也需要快递...我必须这样做两次。有没有办法将一些代码移到另一个文件中?
    猜你喜欢
    • 2014-09-22
    • 2014-03-15
    • 2020-10-02
    • 2015-06-21
    • 2021-09-28
    • 2017-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多