一、Node.js REPL(交互式解释器Read Eval Print Loop)
表示一个电脑的环境,类似Window系统的终端或Unix/Linux shell,我们可以在终端中输入命令,并接收系统的响应。
1、node自带交互式解释器,可执行的任务:(Node 的交互式解释器可以很好的调试 Javascript 代码)
-
读取 - 读取用户输入,解析输入了Javascript 数据结构并存储在内存中。
-
执行 - 执行输入的数据结构
-
打印 - 输出结果
-
循环 - 循环操作以上步骤直到用户两次按下 ctrl-c 按钮退出。
我们可以输入以下命令来启动 Node 的终端: $ node
>
$ node
>
$ node
> x = 10
10
> var y = 10
undefined
> x + y
20
> console.log("Hello World")
Hello World
undefined
2、REPL命令
-
ctrl + c - 退出当前终端。
-
ctrl + c 按下两次 - 退出 Node REPL。
-
ctrl + d - 退出 Node REPL.
-
向上/向下 键 - 查看输入的历史命令
-
tab 键 - 列出当前命令
-
.help - 列出使用命令
-
.break - 退出多行表达式
-
.clear - 退出多行表达式
-
.save filename - 保存当前的 Node REPL 会话到指定文件
-
.load filename - 载入当前 Node REPL 会话的文件内容。
二、Node.js回调函数
Node.js 异步编程的直接体现就是回调。
1、阻塞代码(在文件读取完后才执行完程序)
input.txt文件:
测试文件
创建 main.js 文件, 代码如下:
var fs = require("fs"); var data = fs.readFileSync('input.txt'); console.log(data.toString()); console.log("程序执行结束!");
以上代码执行结果如下:
$ node main.js 测试文件 程序执行结束!
2、非阻塞代码(在读取文件时同时执行接下来的代码)
文件 input.txt:
测试文件
创建 main.js 文件, 代码如下:
var fs = require("fs"); fs.readFile('input.txt', function (err, data) { if (err) return console.error(err); console.log(data.toString()); }); console.log("程序执行结束!");
以上代码执行结果如下:
$ node main.js 程序执行结束!测试文件