我是node.js的初学者,我在这里安装它:
https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager
我从控制台尝试了它并且它起作用了:
console.log('Hello World!');
nodejs helloConsole.js
> Hello World!
然后我尝试在HTTP Server中创建它,这是代码:
var http = require("http");
http.createServer(function (request, response) {
request.on("end", function () {
response.writeHead(200, {
'Content-Type': 'text/plain'
});
response.end('Hello HTTP!');
});
}).listen(8080);
我从终端运行它:
nodejs hello.js
然后我在http://localhost:8080/
打开浏览器,需要很长时间才能加载,然后在Chrome上它会给我:
Unable to load the webpage because the server sent no data.
并且firefox给了我:
The connection has timed out
注意:其他Web服务器工作正常,如apache。
答案 0 :(得分:2)
您将监听器附加到request
对象,收听end
事件,在request
抓住该事件之前,您不会看到回复。
要测试一下你可能想要修改它,就像这里提供的那样:http://nodejs.org/
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n');
}).listen(1337, '127.0.0.1');
console.log('Server running at http://127.0.0.1:1337/');
答案 1 :(得分:2)
您正在侦听请求参数的“结束”事件,但在调用最外层回调函数时,请求已经结束,因此订阅该事件为时已晚。
您可以直接回复最外层的回调,这是nodejs.org中的示例代码所示。
答案 2 :(得分:0)
尝试以下步骤,如果您使用的是Windows,它可能对您有帮助。
node.exe
Hard Disk Drive
放在您想要投放的地方D:/nodejs/node.exe
hello.js
放在同一个directory
D:/nodejs/hello.js
Command Prompt
D:/nodejs/
转到该文件夹node hello.js
并运行命令{{1}}