2013-02-14 163 views
8

我在一個名爲server.js的文件中有以下代碼。運行node.js代碼只顯示一個節點標識符

var http = require('http'); 

http.createServer(function (request, response) { 
    response.writeHead(200, {'Content-Type': 'text/plain'}); 
    response.end('Hello World\n'); 
}).listen(8124); 

console.log('Server running at http://127.0.0.1:8124/'); 

我使用命令提示符和naviage文件夾所在的文件recides,然後運行命令

node server.js 

但我沒有得到預期的輸出。相反,我得到

The node identifier for {My Machine Name} is v2hrfnqaj. 

注:我已經有節點安裝在我的機器,它工作正常。

+0

當你'節點-v'會發生什麼? – Trevor 2013-02-14 19:22:57

+0

當你進入'http://127.0.0.1:8124 /'時會發生什麼? – 2013-02-14 19:24:12

+0

@Trevor:節點-v無法正常工作..我獲得相同的輸出 – Muthukumar 2013-02-14 19:48:17

回答

14

當我試圖運行cordova命令時出現這種情況。解決步驟:

的Windows

  1. 在CMD提示符下,鍵入 「裏的節點」。正如邁克爾所說,這顯示 您可能的罪魁禍首,您有2個nodejs EXE安裝在您的計算機上 。
  2. 導航到開始>計算機>右鍵單擊屬性>高級系統設置
  3. 在高級選項卡,選擇環境變量
  4. 在系統變量中,選擇「路徑」變量
  5. 查找的NodeJS EXE,通常是「C :\ Program Files(x86)\ nodejs \「
  6. 將其剪切並粘貼到」路徑「變量的開頭。確保 路徑之間用「;」隔開
  7. 打開一個新的CMD提示,並嘗試科爾多瓦再次
+1

因爲我確實發佈了初始解決方案[這裏](http://stackoverflow.com/a/24456503/428628),我認爲你可以做得更好,以表彰我的信任,也許將你的解決方案作爲評論添加到我的。我提到這一點是因爲你看起來很新,可能不熟悉SO禮儀。 – 2015-06-22 18:51:17

+0

不幸的是,改變'PATH'會破壞Harvest SCM。因此,如果您需要使用Node.js *和*檢入您的代碼以像我一樣收穫,那麼您註定會失敗。請參閱[我的答案](http://stackoverflow.com/a/30979722/1461424)以獲得更好的解決方案。 – Krumia 2017-04-11 04:11:19

0

我想你運行的是錯誤的節點命令。 嘗試查找或重新下載nodejs安裝並將其作爲第一個目錄添加到您的路徑中。如果您正在運行linux或unix,則可以嘗試「哪個節點」來查看正在運行的內容。 注意,在某些情況下,node.js的可執行文件名爲如此的NodeJS你可能想嘗試 nodejs server.js以及

+0

它在節點0.6中更新(不確定)從'node'到'nodejs' – Mustafa 2013-02-14 19:38:43

+0

Def一個路徑問題。尼斯。我不知道'nodejs'工作。 – Trevor 2013-02-14 19:59:11

0

我用Node.js的命令提示符,而不是Windows默認的命令提示符,它爲我工作。不知道爲什麼它在Windows默認命令提示符下不起作用。

2

這是舊的,但我遇到了同樣的問題。完全相同的消息(當然與我的機器名稱)。問題是在路徑上有另一個可執行文件,在C:\Program Files (x86)\CA\SharedComponents\PEC\bin。我在一臺Windows機器上運行,因此運行where node顯示路徑中存在兩個衝突的「節點」可執行文件。

要解決這個問題,我只是從PATH環境變量中刪除了CA目錄。

+0

不幸的是,改變'PATH'變量破壞了Harvest SCM。 – Krumia 2015-06-22 12:14:15

-1

我也有同樣的問題,運行 - 而定義窗口的路徑使用以下參數

的Windows:

set NODE_PATH=C:\nodejs 

OR

設置nodej的環境變量

NODE_PATH=C:\nodejs 
Path= C:\nodejs 

(追加路徑包含此字符串「C:\的NodeJS」)

+0

這是如何工作的? – 2017-04-24 20:39:06

8

Harvest SCM被安裝在系統上會出現這種情況。它有一個名爲node.exe的可執行文件,位於<Program Files (x86)>\CA\SharedComponents\PEC\bin(其中<Program Files (x86)>是您的x86程序文件文件夾)。此路徑存在於PATH變量之前到Node.js的路徑node.exe

您可以執行以下兩件事情可以做,以解決這個問題的:

  1. 刪除<Program Files (x86)>\CA\SharedComponents\PEC\binPATH環境變量。
  2. <Program Files (x86)>\nodejs添加到PATH環境變量的開頭(這是從djrpascu開始)。

你可以做得更好!

有兩個問題與上面的方法:

  1. 你打破收穫SCM的功能。
  2. 如果您沒有升級特權來更改PATH,則說明您已超出選項。 (感謝@Glats

所以我創造了這個小批處理文件,並把它放在一個目錄,我有幾個其他個人腳本(這個目錄是我PATH)。 Here's the gist for the script

nodecmd.bat

@echo off 

set path=%path:C:\Program Files (x86)\CA\SharedComponents\PEC\bin;=%;C:\Program Files (x86)\nodejs; 

start %ComSpec% 

這時你想運行的Node.js接下來的時間,而不是命令提示符,你"Run..." command打開新的腳本。

視窗 + - [R

nodecmd

一個命令提示將出現。您可以使用此命令提示符運行node而不麻煩。

說明

該位將刪除PATH變量收穫的可執行文件的路徑:

%path:C:\Program Files (x86)\CA\SharedComponents\PEC\bin;=%; 

,這增加了Node.js的的路徑:

set path=...;C:\Program Files (x86)\nodejs; 

結果是包含字符串原始路徑變量減去收穫路徑節點的路徑。它在當前批處理文件的範圍內設置爲PATH變量。

注:您可能需要更改路徑的腳本,以適應軟件的安裝文件夾在您的系統)。

下一行,start %ComSpec%啓動命令提示符。此時,PATH變量被修改。使用修改的環境變量,您可以在此新的命令提示符中運行節點。 環境變量修改不會影響系統的其他部分,確保Harvest SCM軟件不中斷地運行。

+1

這是一個很好的解決方案。我建議增加一點你的方法做的更清晰,這是通過用臨時修復PATH env var的包裝腳本執行它來「修復」節點。從你的回答中不清楚你需要始終從這個新的包裝中啓動節點,並且PATH變化不是永久的,這是不打破Harvest的關鍵。 – 2015-06-22 18:55:16

+0

謝謝@MichaelR,我會嘗試將您的反饋意見寫入答案。 – Krumia 2015-06-22 18:59:58

+1

這一個爲我工作,因爲我沒有提升特權來改變我的環境路徑 – Glats 2016-10-26 12:49:59

0

不要通過從路徑中刪除Harvest SCM來破壞它。試試這個,打開你的Windows命令行(cmd),然後傳遞下面的nodejs批處理文件,以便它將你的命令行設置爲nodejs環境。在那裏享受節點命令。

C:> 「C:\ Program Files文件\的NodeJS \ nodevars.bat」

0

豐收衝突是我確切的問題。感謝發佈。還要添加,請在再次嘗試init之前檢查兩個路徑變量以確認並重新啓動終端。

0

我遇到了同樣的問題,只是改變了來自Harvest的node.exe文件的名稱。這並沒有打破Harvest的任何事情,我可以繼續使用它。

更改豐收的命令名稱node_.exe

ren "C:\Program Files (x86)\CA\SharedComponents\PEC\bin\node.exe" "C:\Program Files (x86)\CA\SharedComponents\PEC\bin\node_.exe"