$> node
>_
打点内容执行下:
> console.log("Hello world!")
Hello world!
undefined
>_
这就是node的交互执行环境,也叫REPL(Read-Eval-Print-Loop)
.break
命令(Ctrl-C) 有时候在REPL里输入的代码还没有结束,但是又不想输出时,可以使用.break退出当前的输入。比如:
> function() {
... console.log
... .break
>
在输入function() {
后,回车不会退出。如果这个时候你不想输入了,打一下.break
即可退出。
.exit
命令(Ctrl-D)
从REPL里退出
$> node
> .exit
$ >_
当在REPL环境里打入.exit
后,node就会退出执行
.help
命令 获得帮助的命令
> .help
.break Sometimes you get stuck, this gets you out
.clear Alias for .break
.editor Enter editor mode
.exit Exit the repl
.help Print this help message
.load Load JS from a file into the REPL session
.save Save all evaluated commands in this REPL session to a file
.save
命令 将当前的REPL内容保存到文件中.
$> node
> var a = 100;
> console.log("a = " + a);
> .save a.js
> .exit
$> cat a.js
var a = 100;
console.log("a = " + a)
.load
命令 将文件的内容加载到当前的REPL环境中来.
$> node
> a //加载前
ReferenceError: a is not defined
at repl:1:1
at ContextifyScript.Script.runInThisContext (vm.js:50:33)
at REPLServer.defaultEval (repl.js:240:29)
at bound (domain.js:301:14)
at REPLServer.runBound [as eval] (domain.js:314:12)
at REPLServer.onLine (repl.js:441:10)
at emitOne (events.js:121:20)
at REPLServer.emit (events.js:211:7)
at REPLServer.Interface._onLine (readline.js:282:10)
at REPLServer.Interface._line (readline.js:631:8)
> .load a.js //加载
> a //加载后
100
.editor
命令
进入一个相对自然的编辑环境,不会对每行输入进行解析
> .editor
// 进入编辑模式 (^D 结束退出, ^C取消)
function welcome(name) {
return `Hello ${name}!`;
}
welcome('Node.js User');
// ^D
'Hello Node.js User!'
>
- <ctrl>-C: 退出当前行
- <ctrl>-D:退出REPL环境,与
.exit
的功能是一样的 - <tab>:补全/提示输入内容列表
a. 参数-e
$> node -e 'console.log("Hello world!")'
Hello world!
b. 参数-p
$> node -p 'console.log("Hello world!")'
Hello world!
undefined
- 创建一个xxx.js文件(这里是hello.js)
//hello.js
console.log("Hello world!");
- 执行
$> node hello.js
- 执行结果
Hello world!