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 提示符下,键入“where node”。正如迈克尔所提到的,这向您展示了可能的罪魁祸首,即您的机器上安装了 2 个 nodejs EXE。
  2. 导航到开始 > 计算机 > 右键单击​​属性 > 高级系统设置
  3. 在高级选项卡下,选择环境变量
  4. 在系统变量下,选择“路径”变量
  5. 找到nodejs EXE,通常是“C:\Program Files (x86)\nodejs\”
  6. 将其剪切并粘贴到“路径”变量的开头。确保路径用“;”分隔
  7. 打开一个新的 CMD 提示并再次尝试 cordova
于 2014-09-19T01:35:57.677 回答
14

在您的系统上安装Harvest SCM时会发生这种情况。它有一个名称node.exe为 at的可执行文件<Program Files (x86)>\CA\SharedComponents\PEC\bin<Program Files (x86)>您的 x86 程序文件文件夹在哪里)。此路径存在于您的PATH变量中位于 Node.js 的node.exe.

更新:您不需要旧答案中列出的详细方案。您只需打开命令提示符并运行:

C:\> nodevars

nodevars.bat是一个小脚本,它与下面描述的基本相同(但以更安全的方式)。如果您安装了节点,则此脚本应位于路径中。(如果不确定添加C:\Program Files\nodejs到您的路径中。但请确保将其附加到最后,这样 Harvest SCM 就不会中断)。


以下所有内容都已过时,但我会将其留给好奇的读者。

您可以执行以下两项操作中的任何一项来克服此问题:

  1. <Program Files (x86)>\CA\SharedComponents\PEC\binPATH环境变量中删除。
  2. 添加/移动<Program Files (x86)>\nodejsPATH环境变量的开头(这是当前接受的来自djrpascu的答案)。

你可以做得更好!

上述方法存在两个问题:

  1. 您破坏了 Harvest SCM 的功能。
  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

解释

PATH此位从变量中删除 Harvest 的可执行文件路径:

%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 变量已被修改。使用修改后的环境变量,您可以在这个新的命令提示符中运行 node。环境变量修改不影响系统其余部分,保证Harvest SCM软件运行不中断。

于 2015-06-22T12:12:29.343 回答
4

不要通过从路径中删除您的 Harvest SCM 来破坏它。试试这个,打开你的 windows 命令行 (cmd),然后传递以下 nodejs 批处理文件,以便它将你的命令行设置为 nodejs 环境。享受那里的节点命令。

C:> "C:\Program Files\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显示路径中存在两个冲突的“节点”可执行文件。

为了解决这个问题,我刚刚从PATH环境变量中删除了 CA 目录。

于 2014-06-27T16:19:17.387 回答
1

node.exe我遇到了同样的问题,只是从 Harvest更改了文件名。这并没有破坏 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,您可以尝试“哪个节点”来查看正在运行的内容。nodejs server.js请注意,在某些情况下,node.js 可执行文件称为 nodejs,因此您可能也想尝试一下

于 2013-02-14T19:34:25.983 回答
0

我使用了 node.js 命令提示符,而不是 Windows 默认命令提示符,它对我有用。不知道为什么它在 windows 默认命令提示符下不起作用。

于 2013-02-14T21:12:35.737 回答
-1

I was also running with same issue - while defining the path for windows use below parameter

Windows:

set NODE_PATH=C:\nodejs

OR

Set the environment variable for nodejs

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

(append the path contain this string “c:\nodejs”)

于 2015-04-22T14:26:53.383 回答