1

我是 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

注意:其他网络服务器工作正常,如 apache。

4

3 回答 3

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/');
于 2013-05-06T08:18:41.353 回答
2

您正在监听请求参数的“结束”事件,但在调用您最外层的回调函数时,请求已经结束,因此订阅该事件为时已晚。

您可以直接从最外层的回调中响应,这就是 nodejs.org 中的示例代码所示。

于 2013-05-06T08:25:29.267 回答
0

尝试以下步骤,如果您使用的是 Windows,它可能会对您有所帮助。

  1. node.exehttp://nodejs.org/download/下载
  2. 放在一个Hard Disk Drive你想跑的地方D:/nodejs/node.exe
  3. 现在把你hello.js放在同一个地方,directory它应该看起来像D:/nodejs/hello.js
  4. 现在从Command Prompt转到该文件夹D:/nodejs/​​并运行命令node hello.js
于 2013-05-06T08:19:09.283 回答