2012-04-18 126 views
4

最近我收到很多奇怪的錯誤消息,現在我甚至無法啓動app.js。以下是什麼意思,有誰知道如何解決它?Node.js中的奇怪錯誤消息

node.js:201 
     throw e; // process.nextTick error, or 'error' event on first tick 
      ^
TypeError: Cannot read property 'port' of null 
    at Object.<anonymous> (/Users/henrikpetersson81/node/last/test4/app.js:15:64) 
    at Module._compile (module.js:441:26) 
    at Object..js (module.js:459:10) 
    at Module.load (module.js:348:31) 
    at Function._load (module.js:308:12) 
    at Array.0 (module.js:479:10) 
    at EventEmitter._tickCallback (node.js:192:40) 
+2

可能是一個語法錯誤,但我們不能幫助,除非你發佈的代碼。 – 2012-04-18 13:27:04

+0

這是一個運行時錯誤,而不是語法錯誤。語法錯誤會說「SyntaxError」。 – 2012-04-18 13:29:29

+0

你能顯示你的代碼嗎? 如果您使用Express,請注意Express 3.0已改變其工作方式。 – Menztrual 2012-04-18 13:48:29

回答

1

看到一個similar question recently。您可能遇到類似的問題。在app.listen已完成並且已調用相應的回調之前,您正在使用的庫(或您自己的代碼)可能正在嘗試訪問app.address().port

1

我發現了一篇文章解釋相同的錯誤信息,這是端口的問題。我將端口從3000更改爲5959,現在它可以正常工作。奇怪的是,港口突然停止工作。

+1

您是否有另一個應用程序,可能是Rails應用程序中的紅寶石,已經在端口3000上偵聽? – 2012-04-18 14:43:59

+1

其實不,所以有點奇怪。 – holyredbeard 2012-04-19 18:38:50

+0

和我一樣!端口3000不是由其他應用程序忙,但NodeJS不能聽它。真的很奇怪! – 2014-06-05 11:33:43

4

該端口已被合理使用。這是與我的情況。

0

我有同樣的問題。事實證明,當使用nodemon(或簡單的事情),當你殺死它可能沒有被殺死的節點服務器,所以服務器仍在監聽3000端口。爲了克服這個簡單的關閉終端並重新啓動服務器(在Ubuntu機器上,使用節點和Nodemon)

0

我有一個類似的問題,其中port:3000僅由node.js腳本使用。 殺死PID爲我工作的端口:3000。

lsof -i :3000 
kill -9 <PID> 
0

您的本地主機正在監聽的端口正被其他應用程序/服務使用。嘗試將以下位置的端口更改爲不同的端口號,如8888或3000,並且您應該很好。

/Users/henrikpetersson81/node/last/test4/app.js