REPL环境
一、Node的REPL基本操作
REPL(Read-eval-print-loop):交互式解析器
在REPL环境下,可以定义和运行变量、函数、对象。
REPL的常用命令:
进入node,即进入了REPL环境,在命令窗口输入node
退出:输入.exit或者连续按ctrl+c两次
点击tab可以打印出Node.js中的所有对象
点击向上/向下可以查看历史命令
.save filename保存输入的命令
.load filename加载文件
在REPL环境下,可以用_代替上一次表达式的结果
二、node读写文件
- 加载文件读写模块
- 开始读写文件,readFile的参数一:要读写的文件路径,参数二回调函数
- 捕获异常,如果数据有异常就抛出异常,如果没有异常就输出
- 返回的数据是以十六进制输出,为了得到正常数据,用toString方法
var fs=require("fs"); fs.readFile("data.json",function(error,data){ if(error){ throw error; } console.log(data.toString()); })
三、global的属性和方法
- 在node中,没有window,global相当于window,是顶级对象。
- setTimeout:定时器,在指定秒数后执行回调函数,如果指定秒数为0,在执行栈完成后再执行,存储在异步队列中。
- setImmediate:立即执行,在执行栈完成后再执行,存储在异步队列中,它和setTimeout时间为0的执行顺序不确定。
- process.nextTick:将要执行的程序放在执行栈的最后。所以比setTimeout0和setImmediate先执行。
- setInterval:定时器,在规定时间内重复执行
setTimeout(function () { console.log("timeout"); }, 0); setImmediate(function(){ console.log("immediate"); }) console.log("执行栈"); process.nextTick(function(){ console.log("添加到执行栈末尾"); })
执行结果:
执行栈
添加到执行栈末尾
timeout
immediate
获取路径:
- __dirname :当前执行的js所在的文件夹
- __filename:当前执行的js的路径
- process.cwd():当前执行node.exe的路径