13

server.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/');

コマンドプロンプトを使用して、ファイルが保存されているフォルダーに移動してから、コマンドを実行します

node server.js

しかし、期待した出力が得られません。代わりに私は得る

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

注:マシンにノードが既にインストールされていて、正常に機能していました。

4

9 に答える 9

19

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

ウィンドウズ

  1. CMDプロンプトで、「wherenode」と入力します。Michaelが述べたように、これは、マシンに2つのnodejsEXEがインストールされているという原因の可能性を示しています。
  2. [スタート]>[コンピューター]>[プロパティ]を右クリック>[システムの詳細設定]に移動します
  3. [詳細設定]タブで、[環境変数]を選択します
  4. [システム変数]で、[パス]変数を選択します
  5. nodejs EXE、通常は「C:\ Program Files(x86)\ nodejs\"」を検索します
  6. これを切り取って「Path」変数の先頭に貼り付けます。パスが「;」で区切られていることを確認してください
  7. 新しいCMDプロンプトを開き、cordovaを再試行します
于 2014-09-19T01:35:57.677 に答える
14

これは、HarvestSCMがシステムにインストールされている場合に発生します。に名前の実行可能ファイルnode.exeがあります(x86プログラムファイルフォルダはどこですか)<Program Files (x86)>\CA\SharedComponents\PEC\bin<Program Files (x86)>このパスは、Node.jsへのパスのPATHの変数に存在します。node.exe

更新:古い回答に記載されている手の込んだスキームは必要ありません。コマンドプロンプトを開いて実行するだけです。

C:\> nodevars

nodevars.batは、以下で説明するのと本質的に同じことを行う小さなスクリプトです(ただし、より安全な方法で)。ノードがインストールされている場合、このスクリプトはパスに含まれている必要があります。(C:\Program Files\nodejsパスに必ず追加しない場合。ただし、Harvest SCMが壊れないように、最後に必ず追加してください)。


以下のすべては時代遅れですが、好奇心旺盛な読者のために残しておきます。

この問題を克服するために実行できる次の2つのいずれかを実行できます。

  1. 環境変数<Program Files (x86)>\CA\SharedComponents\PEC\binから削除します。PATH
  2. 環境変数<Program Files (x86)>\nodejsの先頭に追加/移動します(これは、現在djrpascuから受け入れられている回答です)。PATH

あなたはもっとうまくやれる!

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

  1. HarvestSCMの機能を壊します。
  2. 変更するための昇格された特権がない場合PATHは、オプションがありません。(@Glatsに感謝します)

そこで、この小さなバッチファイルを作成し、他のいくつかの個人用スクリプトがあるディレクトリに配置しました(このディレクトリは私の中にありますPATH)。スクリプトの要点は次のとおりです

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...」コマンドを使用して新しいスクリプトを開きます。

Windows+R

nodecmd

コマンドプロンプトが表示されます。このコマンドプロンプトを使用するnodeと、手間をかけずに実行できます。

説明

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

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

そして、これによりNode.jsのパスが追加されます。

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

結果は、元のPATH変数からHarvestのパスを差し引いたものと、 Nodeのパスを含む文字列になります。また、現在のバッチファイルのスコープではPATH変数として設定されています。

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

次の行でstart %ComSpec%、コマンドプロンプトを開始します。この時点で、PATH変数が変更されます。変更された環境変数を使用すると、この新しいコマンドプロンプト内でノードを実行できます。環境変数の変更はシステムの他の部分に影響を与えないため、 HarvestSCMソフトウェアが中断することなく実行されます。

于 2015-06-22T12:12:29.343 に答える
4

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

C:>「C:\ ProgramFiles \ nodejs \nodevars.bat」

于 2017-06-08T15:18:41.437 に答える
3

環境で優先順位を付けることもできます。手順:コンピューター->右クリック->プロパティ->システムの詳細設定->環境変数-> PATH(システム変数リスト内)->編集->上に移動して優先順位を付ける

于 2019-05-21T06:32:13.663 に答える
2

これは古いですが、私はこれと同じ問題に遭遇しました。まったく同じメッセージ(もちろん私のマシン名も)。問題は、パス上に実行可能な別のノードがあったことでしたC:\Program Files (x86)\CA\SharedComponents\PEC\bin。私はWindowsマシンを使用しているので、where node実行すると、パスに2つの競合する「ノード」実行可能ファイルが表示されました。

PATHこの問題を解決するために、環境変数からCAディレクトリを削除しました。

于 2014-06-27T16:19:17.387 に答える
1

同じ問題に直面し、node.exeHarvestからファイル名を変更しただけです。これはHarvestから何も壊れていません、そして私はそれで働き続けることができます。

Harvestのコマンド名を次のように変更しnode_.exeます。

ren "C:\Program Files (x86)\CA\SharedComponents\PEC\bin\node.exe" "C:\Program Files (x86)\CA\SharedComponents\PEC\bin\node_.exe"
于 2017-10-05T16:29:26.657 に答える
0

間違ったノードコマンドを実行していると思います。nodejsインストールを見つけて再ダウンロードし、最初のディレクトリとしてパスに追加してみてください。LinuxまたはUNIXを実行している場合は、「どのノード」を試して、何が実行されているかを確認できます。場合によっては、node.js実行可能ファイルはnodejsと呼ばれるため nodejs server.js、同様に試してみることをお勧めします。

于 2013-02-14T19:34:25.983 に答える
0

Windowsのデフォルトのコマンドプロンプトの代わりにnode.jsコマンドプロンプトを使用しましたが、うまくいきました。Windowsのデフォルトのコマンドプロンプトで機能しなかった理由がわかりませんでした。

于 2013-02-14T21:12:35.737 に答える
-1

私も同じ問題で実行していました-Windowsのパスを定義している間、以下のパラメータを使用します

ウィンドウズ:

set NODE_PATH=C:\nodejs

また

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

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

(この文字列「c:\ nodejs」を含むパスを追加します)

于 2015-04-22T14:26:53.383 に答える