2011-06-05 21 views
3

我剛剛開始玩弄node.js並正在瀏覽文檔。此代碼甚至沒有運行:http.Server在node.js中沒有addListener?它不是事件發射器?

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

我試圖添加一個偵聽器到'請求'事件的服務器對象。在文檔'請求'下被列爲http.Server下的事件。

我從根本上誤解了一些東西嗎?你會如何爲'request'事件添加一個獨立的偵聽器函數? (即,不覆蓋createServer期間添加的那個)。

回答

5

它看起來像listen不可鏈接,並且您不存儲您的服務器對象。嘗試:

var http = require('http'); 
var myServer = http.createServer(function (req, res) { 
    res.writeHead(200, {'Content-Type': 'text/plain'}); 
    res.end('Hello Node.js\n'); 
}); 
myServer.listen(80, "127.0.0.1"); 
myServer.addListener('request', function(req,res){ 
    console.log(req.headers); 
}); 

這似乎在我的測試工作。

+0

在發佈問題後,我想出了更多類似的東西。我每次刷新瀏覽器都不會發布多個標題。謝謝! – WildaBeast 2011-06-05 22:01:40

+0

是的,我之前在底部的說明是由於我的馬虎測試。我已經把它拿出來了。現在已經很晚了,我應該睡一覺,而不是在SO上。 ;-) – Gijs 2011-06-05 22:03:00