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)
}
}
答案 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
}