我是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);
答案 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。