1. Node的REPL环境
- 什么是REPL
REPL全称 Read-eval-print-loop,交互式解析器
REPL可以提供给程序员对Node.js的一些api快速测试
-
REPL的基本操作
- 定义和运行变量、函数、对象
- 下划线_ 可以获取表达式的运算结果
-
REPL的常用命令
- 退出REPL,连按两次ctrl+c,输入.exit
- tab 打印Node.js中的所有对象
- 向上/向下 查看历史命令
- .save filename 保存输入的命令
- .load filename 加载文件
2. Node 执行js文件
- node filename
3. Node.js的快速体验
- 读取文件
//加载文件读写模块
var fs = require("fs");
fs.readFile("data.json", function(error, data) {
if(error){
throw error;
}
console.log(data.toString());
});
- 创建一个简易web服务器
var http = require("http");
var server = http.createServer();
var count = 0;
server.on("request", function (request,response) {
count ++;
console.log("有请求进来");
response.write("hello world" + count);
response.end();
});
server.listen(3333);
console.log("服务开启");
4. Node中的全局对象
- global
- global顶级对象,类似于浏览器中的window
- 在任何地方可以直接使用,不需要导包
- setTimeout/setImmediate/process.nextTick,异步的时候setTimeout的优先级高于setImmediate,process.nextTick优先级最高
- setInterval
- 在REPL环境中定义的变量直接挂载到global中
- 在js文件中定义的变量不会挂载到global中
- 获取路径
- __dirname 当前执行的js所在的文件夹
- __filename 当前执行的js的路径
- process.cwd() 当前执行node.exe的路径
-
process
- process.abort() 退出node.exe
- process.arch 获取执行当前node的平台是32还是64位
-
process.argv 获取当前执行node时候的参数数组
默认数组由两个值 1、node的路径 2、当前js的路径
-
process.env 获取环境变量
结合命令行 命令 set xxx="" 可以指定执行的环境 例如:set xxx=dev && node 07-env判断执行环境.js
-
标准输入输出
- process.stdout.write(); console.log内部调用的write()并且加了一个换行
-
案例:输出控制台动画
var index = 0; setInterval(function () { //输出之前清空之前的内容 process.stdout.write("u001b[2Ju001b[0;0H"); var content = fcontent[index]; process.stdout.write(content); index++; if(index >= fcontent.length) { index =0; } }, 100);
-
process.stdin.read();
process.stdin.on("readable", function () { //监控键盘的输入 //只要有输入,就会执行function var data = process.stdin.read(); if(data == null) { console.log("请输入一些内容"); return; } process.stdout.write("你输入的内容:" + data); });