刚接触Node.js
环境,实用的语言仍是JavaScript
因此语法不用多说、主要关心的是Node.js
环境跟浏览器中的JavaScript
环境的区别。node
虽然这个在浏览器的js环境中也常常用,但再node中更常见。程序的调试信息和日志都用它来输出。web
###console.log()json
打印日志到标准输出流(stdout)并换行数组
console.log('This is Log!');
This is Log!浏览器
还能够把程序中的变量格式化输出, 支持%s
、%d
、%j
等占位符, 分别输出字符串、数字、json对象。webstorm
var name = 'UgCode'; var old = 18; console.log('My name is %s', name); console.log('I am %d', old);
My name is UgCode I am 18函数
###console.info()编码
其实这跟console.log
是同样同样滴!操作系统
###console.error()命令行
这个也跟console.log
很像,不过它输出到标准错误流(stderr). 当把输出流重定向到日志文件的时候,这些错误是不会写入文件的。
console.log('This is Log!'); console.error('This is Error!');
node console.js 1>log.txt
打开log.txt文件发现只有This is Log!
。 这里数字1表明的就是标准输出流, 若是改为2就是把错误流写到文件中。
###console.warn() 同理, 跟console.error
同样。
###console.time()/console.timeEnd()
这两个方法是一对, 用来计算代码执行的时间的。
console.time
启动一个计时器,给个字符串参数用来标识这个计时器, 当代码结束时用console.timeEnd
来打印这段代码执行了多长时间。
console.time('time'); var j = 0; for (var i=0; i < 1000000; i++) { j += i; } console.timeEnd('time'); console.log('j = ' + j);
time: 62ms j = 499999500000
几个经常使用的全局变量
###__dirname 该变量是当前运行的js文件所在目录的绝对路径
console.log(__dirname);
/Users/UgCode/webstormprojects/TestNodeJS
###__filename 该变量是当前运行的js文件的绝对路径
console.log(__filename);
/Users/UgCode/webstormprojects/TestNodeJS/process.js
###process.stdout 输出标准输出流:
process.stdout.write('This is Stdout');
This is Stdout
###process.stderr 标准错误流:
process.stderr.write('This is Stderr');
This is Stderr
其实console.log也是调用这个方法来输出的:
console.log = function(d) { process.stdout.write(d + '\n'); };
###process.stdin.on() 使用process.stdin.on
能够接受用户键盘输入。 在以前要先设置它的编码格式:
process.stdin.setEncoding('utf-8');
process.stdin.on
方法能够注册一些回调函数来接受用户的键盘输入:
process.stdin.setEncoding('utf-8'); //data函数能够返回用户输入的内容 process.stdin.on('data', function(data){ console.log(data); });
命令行运行文件之后能够发现程序暂停并等待用户输入,输入内容回车之后会输出你刚才输入的内容。control+c来退出程序。
//readable函数没有参数, 要用stdin手动读取用户输入 process.stdin.on('readable', function(){ var data = process.stdin.read(); console.log(data); });
命令行运行结果跟上面差很少。
###process.cwd() 输出当前命令行所在位置的路径:
console.log(process.cwd());
###process.on() process.on
经过注册回调函数,能够响应操做系统的一些事件。
程序正常退出时回调exit
函数:
process.on('exit', function(){ console.log('程序关闭!'); });
程序收到中断命令时回调SIGINT
:
process.on('SIGINT', function(){ console.log('程序被终止'); //退出程序 process.exit(); });
###process.argv 这个你们应该不陌生,是程序启动时输入的参数。 process.argv
是一个数组。 第一个参数是执行使用的命令,Node.js
环境中就是node
, 第二课参数是执行文件的路径, 后面是输入的参数。 好比:
console.log(process.argv);
运行该文件并输入一些参数
$ node argv.js 参数1 参数2 参数3 参数n
输出结果
argv:["node","/Users/UgCode/webstormprojects/TestNodeJS/argv.js","参数1","参数2","参数3","参数n"]