2013-02-14 20 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

どうなりますか? – Trevor

+0

'http://127.0.0.1:8124 /'に行くとどうなりますか? –

+0

@トレバー:ノード-vは動作しません。同じ出力が得られます – Muthukumar

答えて

14

私がcordovaコマンドを実行しようとしていたときにこれを取得していました。解決する手順:

のWindows

  1. "ノード" CMDプロンプトで。マイケルが言及したように、これは あなたのマシンにに2つのnodejs EXEがインストールされている可能性が高いことを示しています。
  2. 移動スタート>コンピュータ>「パス」変数
  3. を検索]を選択し、[プロパティ]> [システムの詳細設定
  4. [詳細設定]タブの下で
  5. 、選択環境変数
  6. システム変数の下で右クリックしてEXE、通常は「C nodejs :\ Program Files(x86)\ nodejs \ "
  7. " Path "変数の先頭に貼り付けます。 のパスが ";"で区切られていることを確認してください。
  8. プロンプトを開き、新しいCMDと再び
+1

私は最初の解決策を投稿したので(http://stackoverflow.com/a/24456503/428628)、私はあなたが私の信用を少し上手くやっていると思います。私はこれについて言及しています。あなたはとても新しいので、SOのエチケットに慣れていないかもしれないからです。 –

+0

残念ながら、 'PATH'を変更するとHarvest SCMが壊れてしまいます。だから、Node.js *で作業して、私のようなHarvestにコードをチェックインする必要があるなら、あなたは破滅します。より良い解決策については、[私の答え](http://stackoverflow.com/a/30979722/1461424)を参照してください。 – Krumia

0

間違ったノードコマンドを実行していると思います。 nodejsのインストールを検索または再ダウンロードして、パスに最初のディレクトリとして追加してください。あなたがLinuxまたはUNIXを実行している場合は、どのノードが実行されているかを見ることができます。いくつかのケースでは、Node.jsの実行可能ファイルは、あなたが nodejs server.js同様

+0

ノード0.6で更新されています(分かりません)。 'node'から' nodejs'へ – Mustafa

+0

Defパスの問題。ニース。私は 'nodejs'が働いたことを知らなかった。 – Trevor

0

を試してみたいことがありますので、私は、Node.jsのコマンドプロンプトを使用代わりに、Windowsのデフォルトのコマンドプロンプトで、それは私のために働いたnodejsと呼ばれていること 注意。それはなぜWindowsのデフォルトのコマンドプロンプトで動作しなかったのか分からなかった。

2

これは古いですが、同じ問題が発生しました。正確に同じメッセージ(私のマシン名で)。問題は、パスに実行可能な別のノードがC:\Program Files (x86)\CA\SharedComponents\PEC\binに存在することでした。私はWindowsマシン上にいるので、where nodeを実行すると、パスに2つの競合する「ノード」実行可能ファイルが表示されました。

問題を修正するために、私はCAディレクトリを環境変数PATHから削除しました。

+0

残念ながら、 'PATH'変数を変更すると、Harvest SCMが破損します。 – Krumia

-1

をコルドバを試してみてください、私も同じ問題に実行していた - 窓のためのパスを定義するパラメータの下

のWindowsを使用しながら:

set NODE_PATH=C:\nodejs 

OR

nodejsの環境変数を設定します

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

(この文字列が含まれているパスを追加し、「C:\ nodejs」)

+0

これはどのように機能しますか? –

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\binからPATH環境変数を削除します。
  2. <Program Files (x86)>\nodejsを環境変数の先頭に追加/移動します(これはcurrently accepted answerからdjrpascuまでです)。

あなたはもっとうまくできます!

  1. あなたが収穫SCMの機能を破る:

は、上記のアプローチには二つの問題があります。

  • 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で新しいスクリプトを開きます。

    のWindows + R

    nodecmd

    コマンドプロンプトが表示されます。このコマンドプロンプトを使用してnodeを実行することができます。

    説明

    このビットはPATH変数から収穫の実行可能ファイルのパスを削除します。

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

    そしてこれはNode.jsののパスを追加します。

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

    結果が含まれている文字列です。元のPATH変数マイナスハーベストのパスノードのパス。現在のバッチファイルのスコープ内にPATH変数として設定されています。

    注:あなたは)システムのソフトウェアのインストールフォルダに合わせて、スクリプトでパスの変更をする必要がある場合があります。

    次の行では、start %ComSpec%がコマンドプロンプトを開始します。このとき、PATH変数は変更されます。変更された環境変数を使用すると、この新しいコマンドプロンプトでnodeを実行できます。 環境変数の変更は、残りのシステムには影響しません、Harvest SCMソフトウェアが中断することなく動作することを確認します。

    +1

    これは良い解決策です。私は、PATH環境変数を一時的に修正するラッパースクリプトを使ってノードを修正することで、あなたのアプローチが何をするかを少し明確にすることをお勧めします。この新しいラッパーから常にノードを起動する必要があることと、PATHの変更が永続的でないことは明らかではありません。これはHarvestを破らないための鍵です。 –

    +0

    ありがとう@MichaelR、私は答えにあなたのフィードバックを得ることを試みる。 – Krumia

    +1

    私は自分の環境パスを変更する特権が昇格されていないので、これは私のために働いた – Glats

    0

    ハーベストSCMをパスから削除しないでください。これを試して、Windowsのコマンドライン(cmd)を開き、次のnodejsバッチファイルを渡して、コマンドラインをnodejs環境に設定します。そのノードコマンドをお楽しみください。

    C:> "C:\プログラムファイル\ nodejs \ nodevars.bat"

    0

    収穫の競合が私の正確な問題でした。投稿していただきありがとうございます。また追加するには、パス変数を両方ともチェックして、ターミナルを確認してから再起動してから、initを再試行してください。

    0

    私は同じ問題に直面し、単にnode.exeファイルの名前をHarvestから変更しました。これは収穫から何かを壊していないし、私はそれを維持することができます。

    変更node_.exeに収穫のコマンド名:あなたは `ノード-V`行う際

    ren "C:\Program Files (x86)\CA\SharedComponents\PEC\bin\node.exe" "C:\Program Files (x86)\CA\SharedComponents\PEC\bin\node_.exe" 
    
    関連する問題