Node的全局对象

目录

Node的全局对象

1、__filename

2、__dirname

3、setTimeout(cb, ms)

4、clearTimeout(t)

5、setInterval(cb, ms)

6、process对象


Node的全局对象

Node.js的全局对象是具有全局性的,它们可在所有的模块中应用。我们并不需要在应用中引用这些对象,而可以直接使用它们。

1、__filename

__filename 表示正在执行的代码的文件名。这时此代码文件的解析绝对路径。(当前被执行的文件的全名-->绝对路径+文件名)

运行文件read.js的结果是:

2、__dirname

__dirname表示当前正在执行的脚本所在目录的名称。

console.log("路径名:"+__dirname);

运行文件read.js的结果是: 

3、setTimeout(cb, ms)

setTimeout(cb, ms) 全局函数用于至少多少毫秒后运行回调cb。实际延迟取决于外部因素,如OS计时器粒度和系统负载。计时器不能跨越超过24.8天。

该函数返回一个表示可用于清除定时器的对象。

示例:创建一个js文件名为main.js里面有如下代码:

function printHello(){

   console.log( "Hello, World!");
}
setTimeout(printHello, 2000);

2s后输出“ Hello,World!” 

4、clearTimeout(t)

clearTimeout(t)是清除定时器,用来停止以前用的setTimeout()创建一个定时器。这里t是由setTimeout()函数返回的计时器。

function printHello(){
    console.log("Hello,world!")
}
let st = setTimeout(printHello,2000);
clearTimeout(st)

不会输出  “ Hello,World!” 

5、setInterval(cb, ms)

setInterval(cb, ms) 全局函数是用来至少多少毫秒后重复运行回调函数cb。实际延迟取决于外部因素,如OS计时器粒度和系统负载。计时器不能跨越超过24.8天。

function printHello(){
    console.log( "Hello, World!");
 }
 // 2秒钟后调用上述函数
 setInterval(printHello, 2000);

6、process对象

包含了Node进程的全部信息(当前正在执行的代码的全部信息)

“进程”:就是程序的一次动态运行,就是动态运行的程序

6.1 属性:process对象提供一系列属性,用于返回系统信息。

  • process.argv:返回一个数组,成员是当前进程的所有命令行参数。
  • process.env:返回一个对象,成员为当前Shell的环境变量。
  • process.installPrefix:返回一个字符串,表示 Node 安装路径的前缀。
  • process.pid:返回一个数字,表示当前进程的进程号。
  • process.platform:返回一个字符串,表示当前的操作系统,比如Linux
  • process.title:返回一个字符串,默认值为node,可以自定义该值。
  • process.version:返回一个字符串,表示当前使用的 Node 版本。
console.log("Pid:",process.pid)
console.log("操作系统:",process.platform)
console.log("Node版本:",process.version)

 

(1)process.stdout:属性返回一个对象,表示标准输出。该对象的write方法等同于console.log,可用在标准输出向用户显示内容。

process.stdout.write("Hello World!")

 (2)process.stdin:返回一个对象,表示标准输入。

process.stdout.write("请输入数据:")
process.stdin.on('data',(dt)=>{
    process.stdout.write("输入的数据是:"+dt.toString().trim())
    process.exit(0);    //结束进程
})

 

 (3)stderr:指向标准错误

process.stdout.write("请输入数据:")
process.stdin.on('data',(dt)=>{
    process.stdout.write("输入的数据是:"+dt.toString().trim())
    process.exit(0);    //结束进程
})

process.stderr.write("标准错误")

6.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。
console.log("路径:",__dirname)
process.chdir("D:/DEYUN web study/HTML/practice/demo1/src") //回到当前目录的上一级,相当于cd..
let dir = process.cwd()
console.log(dir)

 (1) process.cwd(),process.chdir()

 

(2)process.exit()

 用来退出当前进程。它可以接受一个数值参数,如果参数大于0,表示执行失败;如果等于0表示执行成功。

if (err) {
  process.exit(1);
} else {
  process.exit(0);}

 (3)process.on()

  • process对象部署了EventEmitter接口,可以使用on方法监听各种事件,并指定回调函数。
  • process支持的事件还有下面这些
  • data事件:数据输出输入时触发
  • SIGINT事件:接收到系统信号SIGINT时触发,主要是用户按Ctrl + c时触发。
  • SIGTERM事件:系统发出进程终止信号SIGTERM时触发
  • exit事件:进程退出前触发

6.3 事件

(1)exit事件

当前进程退出时,会触发exit事件,可以对该事件指定回调函数。

process.on('exit', function () {
  fs.writeFileSync('/tmp/myfile', '需要保存到硬盘的信息');
});

例如:进程退出时,显示一段日志。

process.on("exit", code =>
  console.log("exiting with code: " + code))

 注意此时回调函数只能执行同步操作,不能包含异步操作,因为执行完回调函数,进程就会退出,无法监听到回调函数的操作结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陛下,再来一杯娃哈哈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值