Node.js 基础(一)

刚接触Node.js环境,实用的语言仍是JavaScript因此语法不用多说、主要关心的是Node.js环境跟浏览器中的JavaScript环境的区别。node

console

虽然这个在浏览器的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

global 全局变量

几个经常使用的全局变量

###__dirname 该变量是当前运行的js文件所在目录的绝对路径

console.log(__dirname);

/Users/UgCode/webstormprojects/TestNodeJS

###__filename 该变量是当前运行的js文件的绝对路径

console.log(__filename);

/Users/UgCode/webstormprojects/TestNodeJS/process.js

process

###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"]

相关文章
相关标签/搜索