运行node.js代码仅显示节点标识符

ni65a41a  于 2023-04-11  发布在  Node.js
关注(0)|答案(9)|浏览(90)

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

注意:我已经在我的机器上安装了node,它工作得很好。

nhaq1z21

nhaq1z211#

当我试图运行cordova命令时得到了这个。解决步骤:
windows
1.在CMD提示符中,键入“where node”。正如Michael提到的,这显示了可能的罪魁祸首,您的机器上安装了2个nodejs EXE。
1.导航到开始〉计算机〉右键单击属性〉高级系统设置
1.在高级选项卡下,选择环境变量
1.在系统变量下,选择“路径”变量
1.查找nodejs EXE,通常为“C:\Program Files(x86)\nodejs\”
1.将其剪切并粘贴到“Path”变量的开头。确保路径之间用“;”
1.打开一个新的CMD提示符并再次尝试cordova

3yhwsihp

3yhwsihp2#

当你的系统上安装了Harvest SCM时,就会发生这种情况。它有一个名为node.exe的可执行文件,位于<Program Files (x86)>\CA\SharedComponents\PEC\bin(其中<Program Files (x86)>是你的x86程序文件文件夹)。这个路径存在于你的PATH变量 * before * 到Node.js的node.exe的路径。

    • 更新**:您不需要老答案中列出的详细方案,只需打开命令提示符运行:
C:\> nodevars

nodevars.bat是一个小脚本,它基本上做了下面描述的相同的事情(但以更安全的方式)。如果你安装了node,这个脚本应该在路径中。(如果没有,请确保将C:\Program Files\nodejs添加到你的路径中。但请确保将它附加在最后,这样Harvest SCM就不会中断)。

    • 下面的一切都是过时的,但我会把它留给好奇的读者。

你可以做以下两件事来解决这个问题:
1.从PATH环境变量中删除<Program Files (x86)>\CA\SharedComponents\PEC\bin
1.将<Program Files (x86)>\nodejs添加/移动到PATH环境变量的开头(这是来自djrpascucurrently accepted answer)。
你可以做得更好!
上述方法存在两个问题:
1.你破坏了Harvest SCM的功能。
1.如果您没有提升的权限来更改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变量中删除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软件运行时不会中断。

kyxcudwk

kyxcudwk3#

不要将Harvest SCM从path中删除,这会破坏它。尝试这个方法,打开windows命令行(cmd),然后传递以下nodejs批处理文件,这样它会将命令行设置为nodejs环境。享受那里的节点命令。
C:〉“C:\Program Files\nodejs\nodevars.bat”

mznpcxlj

mznpcxlj4#

您还可以在环境中设置优先级。步骤:计算机-〉右键-〉属性-〉高级系统设置-〉环境变量-〉PATH(在系统变量列表中)-〉编辑-〉通过上移来优先化

olmpazwi

olmpazwi5#

这是旧的,但我遇到了同样的问题。完全相同的消息(当然是我的机器名)。问题是路径上有另一个节点可执行文件,在C:\Program Files (x86)\CA\SharedComponents\PEC\bin中。我在windows机器上,所以运行where node显示路径中有两个冲突的“节点”可执行文件。
为了解决这个问题,我只是从PATH环境变量中删除了CA目录。

yquaqz18

yquaqz186#

我遇到了同样的问题,只是简单地改变了Harvest的node.exe文件的名称。这并没有破坏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"
jq6vz3qz

jq6vz3qz7#

我想你运行的node命令是错误的。尝试定位或重新下载你的nodejs安装,并将其添加到你的路径作为第一个目录。如果你运行的是linux或unix,你可以尝试'which node'来查看正在运行的是什么。请注意,在某些情况下,node.js可执行文件被称为nodejs,所以你可能也想尝试nodejs server.js

rfbsl7qr

rfbsl7qr8#

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

kcrjzv8t

kcrjzv8t9#

我也运行了同样的问题-而定义的路径为windows使用下面的参数
窗口:

set NODE_PATH=C:\nodejs


设置nodejs的环境变量

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

(追加包含字符串“c:\nodejs”的路径)

相关问题