以下将以API文档为基础进行分析学习
global对象
这些对象在所有模块里都可用。有些对象不是在全局作用域而是在模块作用域里,这些情况下面文档都会标注出来。
__filename——返回当前模块文件解析后的绝对路径,该属性不是全局的,而是模块作用域下的。
因此,直接console.log(_filename)
;不要加global.
。
__dirname——返回当前模块文件所在目录解析后的绝对路径,也不是全局的。
比如,通过定时器打印出每秒的时刻。
setInterval(function () {
var d=new Date();
console.log('现在是:'+d.getFullYear()+'年'+(d.getMonth()+1)+'月'+d.getDay()+'日'+d.getHours()+'时'+d.getMinutes()+'分'+d.getSeconds()+'秒');
},1000);
process对象
process 对象是一个全局对象,可以在任何地方访问到它。 它是EventEmitter的一个实例。通过这个对象提供的属性和方法,可以允许我们对当前程序的进程进行访问和控制。
console.log(process)
发现弹出了很多方法和属性
argv
通过console.log(process)可以发现,返回的是一个数组。第一个数组元素是运行的程序(node.exe),第二个是运行的js文件。第三个是参数
execPath
开启当前进程的绝对路径
env
返回用户的环境信息——一般是操作系统数据之类。
version/versions
返回版本
pid
当前进程的pid,你可以在window进程中看到
title
进程的显示名称。(getter/setter)
arch
返回CPU的处理器架构
platform
操作平台
cwc()
当前进程的工作目录
chdir(directory)
改变进程的工作目录
memoryUsage()
返回内存使用情况
exit
退出
比如5秒之后退出程序
setTimout(function(){
process.exit();
},5000);
kill(pid)
向进程发送信息
stdin/stdout标准输入输出流(I/O)——重要概念
标准输入/出设备:比方说键盘/显示器就是I/O设备
提供操作输入数据和输出数据的方法,亦称为“IO方法”。
console.log()就是标准输出对象实现的。
process.stdout.write('hello!');
的结果跟console.log('hello!')是一样的。console.log的实现是是:
console.log = function(d) {
process.stdout.write(d + '\n');
};
同理输入是:
//用于监听用户输入的数据
//默认情况下输入流是关闭的。要监听处理输入流数据,首先要开启输入流
process.stdin.resume();
process.stdin.on('data',function (chunk) {
console.log('用户输入了:'+chunk)
});
用户可以在控制台输入内容
现在还不够完善
process.stdin.resume();
var a,b;
process.stdout.write('请输入a的值:');
process.stdin.on('data',function (chunk) {
if(!a){
a=Number(chunk);
process.stdout.write('请输入b的值:');//输入之后提示输入b
}else{
b=Number(chunk);
process.stdout.write('结果是:'+(a+b));
}
});