Microsoft JScript运行时错误:代码:800A1391'console'在运行node.js程序时未定义

Str*_*der 3 javascript node.js

我是node.js的新手.在Windows机器上安装node.js后,我创建了一个名为myFirst.js的文件.该文件如下所示:

console.log("Sweet .. Welcome to Node.js"); 
Run Code Online (Sandbox Code Playgroud)

但是当我尝试导航到该目录并执行该文件时,它会抛出如下错误: 在此输入图像描述

甚至像命令一样

在此输入图像描述

不管用.我错过了什么?我如何执行我的第一个node.js代码块?

小智 7

您必须在执行带有可执行节点的*.s文件前添加上下文,就像说"使用节点脚本引擎打开此文件,而不是默认的Microsoft脚本引擎,它不能识别'控制台'宾语."

因此,而不是简单地提供.Js文件的名称,如下所示:

myFirst.js
Run Code Online (Sandbox Code Playgroud)

将其更改为:

node myFirst.js
Run Code Online (Sandbox Code Playgroud)

*.js文件的名称充当节点可执行文件的参数,然后执行该参数,为您提供"Sweet .. Welcome to Node.js"语句.


mkl*_*nt0 7

HALAR 的有用回答

  • 解释了该*.js文件默认由 Microsoft 过时的WSHWindows 脚本主机)JavaScript 引擎(JScript)而不是 Node.js 执行

  • 并且将 Node.js*.js脚本直接传递给node.exe可执行文件可确保其正确执行

或者,您可以重新配置文件扩展关联,以便*.js默认使用 Node.js 引擎执行文件

  • 打开 PowerShell 控制台窗口。

  • 执行以下操作,更改.jsWindows 注册表中扩展的关联(仅对当前用户帐户生效,但相反,不需要提升):

New-Item -Force HKCU:\SOFTWARE\Classes\NodeJSFile\shell\Open\Command -Value "`"$((Get-Command node.exe).Source)`" `"%1`" %*"
New-Item -Force HKCU:\SOFTWARE\Classes\.js -Value 'NodeJSFile'
Run Code Online (Sandbox Code Playgroud)

从那时起,*.js直接调用文件将使用 Node.js ( node.exe)执行它们。

但是请注意,您必须在每台希望以这种方式运行的机器上执行此操作。