Node.js的Hello World示例出现错误

5

我对node.js还不熟悉。我刚刚在我的Windows机器上完成了安装,目前正在按照tutorialspoint上的教程学习。在安装完成后,我被告知需要创建一个名为main.js的文件,并将下面的代码放入该文件中。

/* Hello, World! program in node.js */
console.log("Hello, World!")

我使用Node.js解释器执行了main.js文件,输入命令$ node main.js,但是出现了以下错误。

SyntaxError: Unexpected identifierat Object.exports.createScript      
(vm.js:24:10)
at REPLServer.defaultEval (repl.js:221:25)
at bound (domain.js:280:14)
at REPLServer.runBound [as eval] (domain.js:293:12)
at REPLServer.<anonymous> (repl.js:412:12)
at emitOne (events.js:82:20)
at REPLServer.emit (events.js:169:7)
at REPLServer.Interface._onLine (readline.js:210:10)
at REPLServer.Interface._line (readline.js:549:8)
at REPLServer.Interface._ttyWrite (readline.js:826:14)

请帮我一下,谢谢。


1
我认为你是在 Node REPL 中运行了 node main.js,而不是从 shell 中运行。 - vp_arth
1
可能是Node REPL throws SyntaxError: Unexpected identifier的重复问题。 - vp_arth
4个回答

6

看起来你正在使用REPL(Read-Eval-Print-Loop)。尝试按下ctrl + c几次,看看是否退出到命令提示符。然后尝试运行node main.js。你应该会看到你想要的输出。


我正在使用Windows机器。 - Jayden
不应该有影响。你犯的错误(我想)是在提示符中输入了“node”,然后按下回车键,然后尝试运行“node main.js”。你不能这样做。只需从主命令提示符中运行“node main.js”。不要执行第一个“node”。 - branweb
所以我运行了你说的,但是输出为空,cmd 中也没有错误。有什么原因吗?谢谢。 - Jayden
我能想到的唯一可能是你没有进入正确的目录。你需要cd进入main.js文件所在的目录,然后运行“node main.js”。要么就是你在main.js文件本身中做错了什么。 - branweb

4

我认为你是在node的REPL环境下运行node main.js,而不是从shell中运行。

你不需要先运行node

$ cat main.js
console.log("Hello, World!")
$ node main.js
Hello, World!

嗯,您正在使用Windows系统。 那么您应该在cmd.exe中执行以下操作:
c:\...> cd c:\projects\hello
c:\...> type main.js
console.log("Hello, World!")
c:\...> node main.js
Hello, World!

注意: 上面的cattype命令是冗余的,只是为了演示文件内容。


此外,在nodejsREPL中,您可以直接编写javascript代码。
试试看吧:

> console.log('Hey');
'Hey'
undefined
> require('./main.js');
Hello, World!
undefined
> exit
Bye-bye

请问您能否进一步解释一下。当您提到cmd.exe时,是指Windows的还是Node.js的命令提示符? - Jayden
我了解标准的Windows shell。我不知道您如何在Windows上安装nodejs。我完全不使用Windows。也许您已经安装了cygwin - vp_arth
我没有安装cygwin。 - Jayden
你如何打开一个窗口,在其中输入 node main.js - vp_arth
我在Windows开始菜单中搜索cmd并运行它。 - Jayden
然后你运行 node,再运行 node main.js?.. 你应该跳过第一步。 - vp_arth

0

你可以在Windows 7的普通命令提示符中从任何地方运行Node,但必须指定JS文件名和确切的文件路径。

例如:c:\users[你的用户名]>node d:\projects\js_files\main.js

如果在执行任何操作之前设置了path="c:\progam files\nodejs\bin"环境变量,则它将起作用。


0

在测试程序之前不要运行node


你能进一步解释一下吗?谢谢。 - Jayden
1
当您输入 node 并按回车键时,您将进入节点 REPL 环境。在 REPL 中,您应该直接编写代码,例如 console.log("Hello World")。如果您想测试一个 JavaScript 文件,您应该运行 node xx.js - yuetsh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接