2013-08-23 85 views
1

我是Node.js的新手,所以我想我會檢查出來並做一個hello world。我的三臺機器都有同樣的問題,Win 8,Win 7和Mac。起初這是一個防火牆問題,但我查了一下,它在Mac和Windows 8系統上都沒有啓動(沒有檢查win7)。當我從終端運行Node時,瀏覽器等待本地主機,然後最終超時。我已經呆了兩天了,似乎無法通過Google找到任何解決方案。我錯過了什麼?節點入門,等待本地主機

這裏是我的代碼:

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

你從tuts +獲得這段代碼嗎?因爲我遇到了與他們的node.js教程完全相同的問題。 – SamHuckaby

回答

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); 
+0

工作,謝謝一堆。我聽說過Express,但是我覺得在開始弄亂外部軟件包之前,我更好地理解了Node的基本知識。我的書講述了幾行章節。再次感謝。 – user1210003

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); 

你可以得到關於連接here更多信息。我告訴你使用這個,因爲你得到一個非常簡單的服務器,這很容易擴展。但是,如果您想製作拉網站,那麼我會建議使用expressjs。