运行node.js代码只是显示一个节点标识符

我有一个名为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. 

注意:我已经在我的机器上安装了节点,并且工作正常。

当我试图运行科多瓦命令时得到了这个。 步骤来解决:

视窗

  1. 在CMD提示符下,input“where节点”。 正如迈克尔所说,这表明你可能的罪魁祸首,你有2个nodejs EXE安装在你的机器上。
  2. 导航到“开始”>“计算机”>右键单击“属性”>“高级系统设置”
  3. 在高级选项卡下,select环境variables
  4. 在系统variables下,select“path”variables
  5. findnodejs EXE,通常是“C:\ Program Files(x86)\ nodejs \”
  6. 剪切并粘贴到“path”variables的开头。 确保path由“;”隔开
  7. 打开一个新的CMD提示符并再次尝试cordova

Harvest SCM安装在您的系统上时会发生这种情况。 它在<Program Files (x86)>\CA\SharedComponents\PEC\bin (其中<Program Files (x86)>是您的x86程序文件文件夹)中具有名为node.exe的可执行文件。 此path出现在您的Node.js的node.exepath之前PATHvariables中。

你可以做以下两件事之一,你可以做的,以解决这个问题:

  1. PATH环境variables中删除<Program Files (x86)>\CA\SharedComponents\PEC\bin
  2. <Program Files (x86)>\nodejs添加/移动到PATH环境variables的开头(这是djrpascu 当前接受的答案 )。

你可以做得更好!

上述方法有两个问题:

  1. 您打破Harvest SCM的function。
  2. 如果您没有提升PATH权限,则表示您没有选项。 (谢谢@Glats )

所以我创build了这个小batch file,并把它放在一个我有几个其他个人脚本(这个目录是在我的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,而不是命令提示符,你打开新的脚本与“运行…”命令 。

Windows + R

nodecmd

命令提示符将出现。 您可以使用此命令提示符运行node而不麻烦。

说明

该位从PATHvariables中删除Harvest的可执行文件的path:

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

这增加了Node.js的path:

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

结果是一个string,其中包含原始PATHvariables减去 Harvest的path, 再加上 Node的path。 并且在当前batch file的范围内设置为PATHvariables。

注意:您可能必须更改脚本中的path以适合系统中的软件安装文件夹)。

下一行, start %ComSpec%启动一个命令提示符。 此时,PATHvariables被修改。 使用修改的环境variables,您可以在此新的命令提示符下运行节点。 环境variables修改不会影响系统的其他部分 ,确保Harvest SCM软件不中断地运行。

这是旧的,但我遇到了同样的问题。 完全相同的消息(当然与我的机器名称)。 问题是在C:\Program Files (x86)\CA\SharedComponents\PEC\binpath上有另一个可执行的节点。 我在一个Windows机器上,所以运行的where node在path中显示两个冲突的“节点”可执行文件。

要解决这个问题,我只是从PATH环境variables中删除CA目录。

我想你正在运行错误的节点命令。 尝试查找或重新下载nodejs安装,并将其作为第一个目录添加到您的path中。 如果你正在运行linux或unix,你可以尝试“哪个节点”来查看正在运行的内容。 请注意,在某些情况下,node.js可执行文件被称为nodejs,因此您可能还想尝试nodejs server.js

我使用的是node.js命令提示符,而不是Windows默认的命令提示符,它为我工作。 不知道为什么它没有在Windows默认命令提示符工作。

不要把你的Harvest SCM从path中删除。 试试这个,打开你的Windows命令行(cmd),然后传递下面的nodejsbatch file,以便它将你的命令行设置为nodejs环境。 在那里享受节点命令。

C:>“C:\ Program Files \ nodejs \ nodevars.bat”

收获冲突是我确切的问题。 感谢张贴。 还要添加,同时检查两个pathvariables以确认并重新启动您的terminal,然后重新尝试init。

我面临同样的问题,只是从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" 

我也在运行相同的问题 – 定义Windows使用下面的参数的path

视窗:

 set NODE_PATH=C:\nodejs 

要么

设置nodejs的环境variables

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

(追加path包含这个string“c:\ nodejs”)