这是我的main.js中的一个简单代码
/* Hello, World! program in node.js */
console.log("Hello, World!")
当我执行$ node main.js时 我得到错误意外标识符?
答案 0 :(得分:2)
您正在尝试从节点repl本身执行该程序,这是错误的。您必须使用终端/命令提示符/ shell中的程序名执行节点,而不是从节点本身执行。
单独启动节点将运行repl,您可以在其中直接执行JavaScript命令。所以你可以在repl。中输入console.log("Hello, World");
。
答案 1 :(得分:0)
我遇到了同样的问题,我是这样解决的:
当您输入命令时:
node main.js
您访问了节点副本。
<块引用>节点。 js Read-Eval-Print-Loop (REPL) 是一个处理 Node.js 表达式的交互式 shell。 shell 读取用户输入的 JavaScript 代码,评估解释代码行的结果,将结果打印给用户,然后循环直到用户发出退出信号。” (堆栈滥用。2019 年 9 月 18 日)
所以基本上,您试图从 Javascript 文件中运行 JavaScript 文件。
解决方案是在访问节点之前运行Javascript文件。
因此,您应该使用以下命令退出节点:
.exit
然后,只需运行 JavaScript 文件:
node filename.js
参考资料: 数字海洋。 2019 年 9 月 18 日。堆栈滥用。如何使用 Node.js REPL。检索自:https://www.digitalocean.com/community/tutorials/how-to-use-the-node-js-repl
答案 2 :(得分:-1)
node. js> $ node main.js
SyntaxError: Unexpected identifier at Object.exports.createScript (vm.js:24:10)
at REPLServer.defaultEval (repl.js:235:25) at bound (domain.js:287:14)
at REPLServer.runBound [as eval] (domain.js:300:12)
at REPLServer.<anonymous> (repl.js:431:12)
at emitOne (events.js:82:20)
at REPLServer.emit (events.js:169:7)
at REPLServer.Interface._onLine (readline.js:212:10)
at REPLServer.Interface._line (readline.js:551:8)
at REPLServer.Interface._ttyWrite (readline.js:828:14)
您在评论中转储的堆栈跟踪表明您正在使用模块readline
。因此,您发布的代码不是您希望我们调试的代码。
您要么没有调用正确的文件,要么没有发布正确的文件。
编辑:
你所说的你创建了一个主文件:
/home/jiju/test/main.js
其中包含:
console.log('Hello World');
但我认为你所说的不是正确的文件:
cd home/jiju
node main.js
其中包含(至少):
require('readline');
您应该做的是确保您正在调用正确的文件,您可以使用命令cat检查:
cd /home/jiju
cat main.js #Will print "require('readline');"
并拨打正确的文件:
cd /home/jiju/test
cat main.js #Will print "console.log('HelloWorld')"
node main.js