Node.JS - 页面继续运行

时间:2012-02-15 11:55:30

标签: javascript node.js

所以我从节点的网站上下载了Windows二进制文件并安装在我安装好的Windows 7机器上,当我这样做时:

node --version

它正确显示其版本:v0.6.7

这是hello world program:

// app.js
var http = require('http');

http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World\n');
}).listen(8000, "127.0.0.1");

console.log('Server running at http://127.0.0.1:8000/');

当我这样做时:

node app.js

我的回复很好:

Server running at http://127.0.0.1:8000/

但是,当我浏览网址http://127.0.0.1:8000时,网页一直在运行(在状态栏上显示waiting for 127.0.0.1...)。

有人可以帮助我如何输出Hello World吗?

4 个答案:

答案 0 :(得分:1)

这是我用curl得到的:

$ curl -vv localhost:8000

* About to connect() to localhost port 8000 (#0)
*   Trying ::1... Connection refused
*   Trying 127.0.0.1... connected
* Connected to localhost (127.0.0.1) port 8000 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.21.4 (universal-apple-darwin11.0) libcurl/7.21.4 OpenSSL/0.9.8r zlib/1.2.5
> Host: localhost:8000
> Accept: */*
> 
< HTTP/1.1 200 OK
< Content-Type: text/plain
< Connection: keep-alive
< Transfer-Encoding: chunked
< 
Hello World
* Connection #0 to host localhost left intact
* Closing connection #0

它没有错。尝试将节点更新到最新的稳定版本(但我看不出它有什么帮助)并确保除节点之外的任何进程都拥有tcp端口8000.

答案 1 :(得分:0)

在我看来,这是两件事之一:

  1. 节点未收到请求
  2. 节点未响应请求
  3. 要测试其中一项,请更改您的代码:

    // app.js
    var http = require('http');
    
    http.createServer(function (req, res) {
      console.log('got a request');
      res.writeHead(200, {'Content-Type': 'text/plain'});
      res.end('Hello World\n');
    }).listen(8000, "127.0.0.1");
    
    console.log('Server running at http://127.0.0.1:8000/');
    

    再试一次。 如果节点没有收到请求,请尝试将端口更改为80而不是8000,我有一个有趣的案例,几周前firefox阻止非传统端口。

    让我知道你怎么去

答案 2 :(得分:0)

您是否检查过您的防病毒或Windows防火墙?

无论你使用哪一个,你都可能想要创建一个临时异常或暂时禁用它只是为了确保没有任何东西妨碍它。

答案 3 :(得分:-1)

尝试将您的收听地址更改为0.0.0.0。也许你遇到了绑定到特定环回的问题。