Nodejs运行但没有输出' Hello' (使用模块)

时间:2016-08-03 19:56:59

标签: javascript node.js

server.js在没有错误消息的情况下运行,仍然在浏览器http://localhost:1337中保持空白而不是' Hello Node.js'为什么?

server.js:

var hello = require('./hello');

var http = require('http');
var ipaddress = '127.0.0.1';
var port = 1337;

var server = http.createServer(hello.onRequest);
server.listen(port, ipaddress);

hello.js:

exports.module = {

    hello: function (req, res) {
        res.end('Hello Node.js');
    }
  ,
    onRequest: function (req, res) {
        res.writeHead(200, {'Content-Type': 'text/plain'});
        hello (req, res)
    }

}

1 个答案:

答案 0 :(得分:3)

您似乎向后退出。

它是module.exports,而不是exports.module

module.exports = {

    hello: function (req, res) {
        res.end('Hello Node.js');
    },
    onRequest: function (req, res) {
        res.writeHead(200, {'Content-Type': 'text/plain'});
        hello (req, res)
    }

}

此外,hello不会在该上下文中定义,因此您需要在onRequest可以访问它的地方定义它。一个简单的建议重构就是导出前面在代码中声明的命名函数。

function hello(req, res) {
    res.end('Hello Node.js');
}

function onRequest(req, res) {
    res.writeHead(200, {'Content-Type': 'text/plain'});
    hello(req, res)
}

module.exports = {
    hello: hello,
    onRequest: onRequest
}