Node.js的全局对象是具有全局性的,它们可在所有的模块中应用。我们并不需要在应用中引用这些对象,而可以直接使用它们。
一、__filename
__filename 表示正在执行的代码的文件名。这时此代码文件的解析绝对路径。(当前被执行的文件的全名-->绝对路径+文件名)
例如:创建一个js文件名为main.js里面有如下代码:
console.log("文件名是:"+__filename);
运行main.js看到的结果:
$ node main.js
文件名:E:\nodejs\main.js
二、__dirname
__dirname表示当前正在执行的脚本所在目录的名称。
console.log("路径名:"+__dirname);
路径名:E:\nodejs
三、setTimeout(cb, ms)
setTimeout(cb, ms) 全局函数用于至少多少毫秒后运行回调cb。实际延迟取决于外部因素,如
OS计时器粒度和系统负载。计时器不能跨越超过24.8天。该函数返回一个表示可用于清除定时器
的对象。
示例:创建一个js文件名为main.js里面有如下代码:
四、clearTimeout(t)
clearTimeout(t)的全局函数用来停止以前用的setTimeout()创建一个定时器。这里t是由setTimeout()函数返回的计时器。
五、setInterval(cb, ms)
setInterval(cb, ms) 全局函数是用来至少多少毫秒后重复运行回调函数cb。实际延迟取决于外部因素,如OS计时器粒度和系统负载。计时器不能跨越超过24.8天。
function printHello(){
console.log( "Hello, World!");
}
// 2秒钟后调用上述函数
setInterval(printHello, 2000);
六、process对象
process对象是 Node 的一个全局对象,提供当前 Node 进程的信息。它可以在脚本的任意位置使用,不必通过require命令加载。该对象部署了EventEmitter接口。
1、属性:process对象提供一系列属性,用于返回系统信息。
- process.argv:返回一个数组,成员是当前进程的所有命令行参数。
- process.env:返回一个对象,成员为当前Shell的环境变量。
- process.installPrefix:返回一个字符串,表示 Node 安装路径的前缀。
- process.pid:返回一个数字,表示当前进程的进程号。
- process.platform:返回一个字符串,表示当前的操作系统,比如Linux。
- process.title:返回一个字符串,默认值为node,可以自定义该值。
- process.version:返回一个字符串,表示当前使用的 Node 版本。
1.1 process.stdout:属性返回一个对象,表示标准输出。该对象的write方法等同于console.log,可用在标准输出向用户显示内容。
process.stdout.write('Hello World')
1.2 process.stdin:返回一个对象,表示标准输入
process.stdout.write('请输入数据:')
process.stdin.on('data',(data)=>{
process.stdout.write("输入的数据是:"+data.toString().trim())
process.exit(0) //结束进程
})
1.3 stderr:指向标准错误
2、方法
- process.chdir():切换工作目录到指定目录。
- process.cwd():返回运行当前脚本的工作目录的路径。
- process.exit():退出当前进程。
- process.getgid():返回当前进程的组ID(数值)。
- process.getuid():返回当前进程的用户ID(数值)。
- process.nextTick():指定回调函数在当前执行栈的尾部、下一次Event Loop之前执行。
- process.on():监听事件。
- process.setgid():指定当前进程的组,可以使用数字ID,也可以使用字符串ID。
- process.setuid():指定当前进程的用户,可以使用数字ID,也可以使用字符串ID。
2.1 process.cwd(),process.chdir()
2.2 process.exit()
用来退出当前进程。它可以接受一个数值参数,如果参数大于0,表示执行失败;如果等于0表示执行成功。
if (err) {
process.exit(1);
} else {
process.exit(0);
}
2.3 process.on()
- process对象部署了EventEmitter接口,可以使用on方法监听各种事件,并指定回调函数。
- process支持的事件还有下面这些:
- data事件:数据输出输入时触发
- SIGINT事件:接收到系统信号SIGINT时触发,主要是用户按Ctrl + c时触发。
- SIGTERM事件:系统发出进程终止信号SIGTERM时触发
- exit事件:进程退出前触发
3、事件
3.1 exit事件
当前进程退出时,会触发exit事件,可以对该事件指定回调函数。
process.on('exit', function () {
fs.writeFileSync('/tmp/myfile', '需要保存到硬盘的信息');
});
例如:进程退出时,显示一段日志。
process.on("exit", code =>
console.log("exiting with code: " + code))
注意:此时回调函数只能执行同步操作,不能包含异步操作,因为执行完回调函数,进程就会退出,无法监听到回调函数的操作结果。