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))

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

Node.js全局对象相关推荐

  1. Node.js 全局对象

    Node.js 全局对象 在浏览器 JavaScript 中,通常 window 是全局对象, 而 Node.js 中的全局对象是 global,所有全局变量(除了 global 本身以外)都是 gl ...

  2. 30.Node.js 全局对象

    转自:http://www.runoob.com/nodejs/nodejs-module-system.html 学习要点:  - __filename  - __dirname  - setTim ...

  3. (6)Node.js 全局对象

    一.浏览器全局对象和Node.js 全局对象 浏览器下的全局对象是window,而Node.js 下的全局对象是 global. 二.Node.js全局对象global的注意事项 • 在交互模式下,声 ...

  4. node.js全局对象和全局变量

    概念:所有属性都可以在程序的任何地方访问,即全局变量.在JavaScript中,通常window是全局对象,而Node.js的全局对象是global,所有全局变量都是global对象的属性,如:con ...

  5. Node.js—Buffer对象

    Node.js-Buffer对象 1 概述 2 基本操作 3 与二进制数组的关系 4 Buffer类 5 Buffer构造函数 6 Buffer类的方法(函数) 6.1 Buffer.isEncodi ...

  6. linux node 命令无效,完美解决linux下node.js全局模块找不到的情况

    今天在在linux上用npm安装了pm2准备部署node项目,结果通过pm2命令启动项目的时候报pm2找不到,这很伤,以为pm2没有安装成功,但是在node安装目录下面的bin文件夹里面调用pm2却没 ...

  7. 一.node的事件处理;二.node的全局对象;三.node的readline模块;四.node的Web编程

    目录 一.node的事件处理 1.node采用的事件驱动模式来进行事件处理的:只有当事件被触发时才执行相关程序 2.node是单线程运行的:采用事件轮询方式,不断的查询事件队列中的消息,然后根据消息执 ...

  8. Node.js自定义对象事件监听与发射

    一.Node.js是以事件驱动的,那我们自定义的一些js对象就需要能监听事件以及发射事件.在Node.js中事件使用一个EventEmitter对象发出,该对象在events模块中.它应该是使用观察者 ...

  9. (7)Node.js 全局函数

    一.Node.js 下的全局函数 1.1JavaScript 语言提供的全局函数,在 Node.js 下依然可用 • parseInt/parseFloat/isNaN/isFinite/eval.. ...

最新文章

  1. LeetCode简单题之数组中第 K 个独一无二的字符串
  2. java连接sqlserver2008_java连接sqlserver2008驱动包
  3. 灵魂拷问:机器学习、深度学习专业已经沦为调包专业了吗?
  4. Adobe (Acrobat)Reader 6.0以上版本支持对有特殊权限的PDF进行添加注释,填写标单以及保存的功能。...
  5. 解决bbb无法加载uImage问题
  6. opencv opencl加速_回放 | OpenCV Webinar 3:OpenCV深度学习应用与原理分析
  7. iphone电压测试软件,电压电击iPhone结果会怎样? 通过测试后, 照样可以正常开机...
  8. Dell T3610 台式工作站UEFI模式安装Win7系统
  9. pyqt5 登录跳转
  10. Python 疾病诊断归一化
  11. 2016vijos 1-1 兔子的字符串(后缀数组 + 二分 + 哈希)
  12. IP地址的分类和规划
  13. [Matlab]使用textscan读取.csv文件时候只读取到了第一行
  14. 天梯赛 L2-001 紧急救援 (25 分)详细注释
  15. oracle语法基础
  16. Tita绩效宝:在360度评估中要问的10个最佳问题
  17. 2022-CS224n-Assignment1-exploring_word_vectors
  18. 阿里云/腾讯云视频截帧
  19. 51Nod-2006 飞行员配对(二分图最大匹配,匈牙利算法)
  20. 地震信号去噪学习(自用)

热门文章

  1. cyusb3014的slavefifo程序的解读
  2. 上楼梯(df和dp解法)
  3. 怎么将计算机设置为光盘引导模式,通过bios设置从光盘/光驱启动的方法
  4. CenterNet2的深入浅出(CVPR2021)
  5. .net基础知识学习
  6. Unity 引擎开始从 Mono 迁移到 .NET CoreCLR
  7. 【con】rounded不起作用(前端bug日记3)
  8. OSPF你懂多少之经典问题50个
  9. visio修改默认字体
  10. PL-2303HX新版驱动