开始使用node,等待localhost

时间:2013-08-23 02:49:18

标签: javascript node.js http

我是Node.js的新手,所以我想我会检查一下并做一个hello world。我在我的所有三台机器上都遇到了同样的问题,包括Win 8,Win 7和Mac。首先想到的是防火墙问题,但是我检查了它,它在Mac和Windows 8机器上都关闭了(没有检查win7)。当我从终端运行Node时,浏览器会等待localhost,然后最终超时。我已经在这两天了,似乎无法通过谷歌找到任何解决方案。我错过了什么??

这是我的代码:

var http = require("http");
console.log("file loaded");

http.createServer(function (request, response) {
   request.on("end", function () {
      response.writeHead(200, {
         'Content-Type': 'text/plain'
      });

      response.end('Hello HTTP!');
   });
}).listen(8080);

2 个答案:

答案 0 :(得分:4)

您不需要等待HTTP请求结束(除了request.on('end', ..)无效且永远不会触发,这就是您超时的原因)。只需发送回复:

var http = require("http");
console.log("file loaded");

http.createServer(function (request, response) {
  response.writeHead(200, {'Content-Type': 'text/plain'});
  response.end('Hello HTTP!');
}).listen(8080);

虽然如果您想要一种更简单的方法来创建HTTP服务器,最简单的方法是使用Express等框架。然后你的代码看起来像这样:

var express = require('express');
var app = express();

app.get('/', function (req, res) {
  res.set('Content-Type', 'text/plain');
  res.send(200, 'Hello HTTP!');
});

app.listen(8080);

答案 1 :(得分:0)

您还可以使用连接中间件。只需首先使用npm安装它,如下所示:

npm install -g connect

在此之后你可以创建一个非常简单的应用程序:

var app = connect()
  .use(connect.logger('dev'))
  .use(connect.static('public'))
  .use(function(req, res){
    res.end('hello world\n');
  })
 .listen(3000);

您可以获得有关 connect here的更多信息。我告诉你使用它,因为你得到一个非常简单的服务器,它很容易扩展。但是,如果你想制作拉网站点,那么我建议使用expressjs。