【Node系列】Node全局对象

本文涉及的产品
函数计算FC,每月15万CU 3个月
云原生网关 MSE Higress,422元/月
可观测链路 OpenTelemetry 版,每月50GB免费额度
简介: global:全局对象,在所有模块中都可以访问

一、全局对象

  1. global:全局对象,在所有模块中都可以访问。

案例代码

global.myVariable = "Hello, World!";
console.log(myVariable); // 输出: Hello, World!
  1. process:进程对象,用于与当前进程进行交互。

案例代码

console.log(process.pid); // 输出当前进程的PID(进程ID)
console.log(process.cwd()); // 输出当前工作目录

属性/事件

  • exit 当进程准备退出时触发。
  • beforeExit 当 node 清空事件循环,并且没有其他安排时触发这个事件。通常来说,当没有进程安排时 node 退出,但是 'beforeExit' 的监听器可以异步调用,这样 node 就会继续执行。
  • uncaughtException 当一个异常冒泡回到事件循环,触发这个事件。如果给异常添加了监视器,默认的操作(打印堆栈跟踪信息并退出)就不会发生。
  • Signal 事件当进程接收到信号时就触发。信号列表详见标准的 POSIX 信号名,如 SIGINT、SIGUSR1 等。
  • stdout标准输出流。
  • stderr标准错误流。
  • stdin标准输入流。
  • argv属性返回一个数组,由命令行执行脚本时的各个参数组成。它的第一个成员总是node,第二个成员是脚本文件名,其余成员是脚本文件的参数。
  • execPath返回执行当前脚本的 Node 二进制文件的绝对路径。
  • execArgv返回一个数组,成员是命令行下执行脚本时,在Node可执行文件与脚本文件之间的命令行参数。
  • env返回一个对象,成员为当前 shell 的环境变量
  • exitCode进程退出时的代码,如果进程优通过 process.exit() 退出,不需要指定退出码。
  • versionNode 的版本,比如v0.10.18。
  • versions一个属性,包含了 node 的版本和依赖.
  • config一个包含用来编译当前 node 执行文件的 javascript 配置选项的对象。它与运行 ./configure 脚本生成的 "config.gypi" 文件相同。
  • pid当前进程的进程号。
  • title进程名,默认值为"node",可以自定义该值。
  • arch当前 CPU 的架构:'arm'、'ia32' 或者 'x64'。
  • platform运行程序所在的平台系统 'darwin', 'freebsd', 'linux', 'sunos' 或 'win32'
  • mainModuleequire.main 的备选方法。不同点,如果主模块在运行时改变,require.main可能会继续返回老的模块。可以认为,这两者引用了同一个模块。
  1. console:控制台对象,用于在控制台输出信息。

案例代码

console.log("Hello, World!"); // 输出: Hello, World!
console.error("Error occurred!"); // 输出红色错误信息

方法/属性

  • console.log([data][, ...])向标准输出流打印字符并以换行符结束。该方法接收若干 个参数,如果只有一个参数,则输出这个参数的字符串形式。如果有多个参数,则 以类似于C 语言 printf() 命令的格式输出。
  • console.info([data][, ...])该命令的作用是返回信息性消息,这个命令与console.log差别并不大,除了在chrome中只会输出文字外,其余的会显示一个蓝色的惊叹号。
  • console.error([data][, ...])输出错误消息的。控制台在出现错误时会显示是红色的叉子。
  • console.warn([data][, ...])输出警告消息。控制台出现有黄色的惊叹号。
  • console.dir(obj[, options])用来对一个对象进行检查(inspect),并以易于阅读和打印的格式显示。
  • console.time(label)输出时间,表示计时开始。
  • console.timeEnd(label)结束时间,表示计时结束。
  • console.trace(message[, ...])当前执行的代码在堆栈中的调用路径,这个测试函数运行很有帮助,只要给想测试的函数里面加入 console.trace 就行了。
  • console.assert(value[, message][, ...])用于判断某个表达式或变量是否为真,接收两个参数,第一个参数是表达式,第二个参数是字符串。只有当第一个参数为false,才会输出第二个参数,否则不会有任何结果。
  1. module:当前模块对象,用于访问当前模块的相关信息。

案例代码

console.log(module.filename); // 输出当前模块的文件路径
console.log(module.exports); // 输出当前模块的导出对象
  1. require:用于加载模块。

案例代码

const fs = require('fs'); // 加载Node.js的文件系统模块
const http = require('http'); // 加载Node.js的HTTP模块
  1. __dirname:当前模块的文件夹路径。

案例代码

console.log(__dirname); // 输出当前模块的文件夹路径
  1. __filename:当前模块的文件路径。

案例代码

console.log(__filename); // 输出当前模块的文件路径
  1. exports:当前模块的导出对象。

案例代码

module.exports = {
   
  greeting: "Hello, World!"
};
  1. setTimeout():在一定延迟后执行一次的定时器函数。

案例代码

setTimeout(() => {
   
  console.log("Delayed message");
}, 1000); // 1秒后输出 "Delayed message"
  1. setInterval():每隔一定时间执行一次的定时器函数。

案例代码

setInterval(() => {
   
  console.log("Repeated message");
}, 1000); // 每隔1秒输出 "Repeated message"
  1. clearTimeout():用于取消已经通过setTimeout()创建的定时器。

案例代码

const timerId = setTimeout(() => {
   
  console.log("This message will be canceled");
}, 1000);

clearTimeout(timerId); // 取消定时器,不会输出消息
  1. clearInterval():用于取消已经通过setInterval()创建的定时器。

案例代码

const timerId = setInterval(() => {
   
  console.log("This message will be canceled");
}, 1000);

clearInterval(timerId); // 取消定时器,不会输出消息

二、node介绍

Node.js是一个基于Chrome V8引擎的JavaScript运行环境,可以用于构建高性能的网络应用程序。它采用事件驱动、非阻塞I/O模型,使得程序可以以高效地方式处理并发请求。

Node.js的特点包括:

  1. 单线程:Node.js采用单线程模型,使用事件循环来处理并发请求。这意味着它可以高效地处理大量的并发请求,而不会因为线程切换而产生开销。
  2. 非阻塞I/O:Node.js使用非阻塞I/O模型,可以在进行I/O操作时继续处理其他请求,而不需要等待I/O操作完成。这使得Node.js非常适合处理高并发的网络应用程序。
  3. 异步编程:Node.js采用异步编程模式,可以使用回调函数来处理异步操作的结果。这使得开发者可以编写简洁、可读性强的代码,同时可以更好地利用系统资源。
  4. 轻量级:Node.js是一个轻量级的运行环境,所需的资源较少,并且可以快速启动。这使得它非常适合部署在云服务器等资源有限的环境中。
  5. 前后端一体化:Node.js可以用于开发前端和后端的代码,使得前后端可以共享相同的语言和模块。这样可以简化开发流程,并提高开发效率。

Node.js的应用场景包括:

  1. Web应用程序:Node.js可以用于开发高性能的Web应用程序,如实时聊天应用、实时协作工具等。
  2. RESTful API服务:Node.js可以用于开发高性能的API服务,提供数据和功能的接口。
  3. 实时数据应用程序:Node.js可以用于开发实时数据应用程序,如实时数据分析、实时监控等。
  4. 游戏后台服务器:Node.js可以用于开发游戏后台服务器,处理大量的并发请求。

Node.js是一个功能强大、高性能的JavaScript运行环境,适用于开发各种类型的网络应用程序。它的优势在于高并发处理能力、高效的I/O操作、简洁的异步编程模型,以及与前端一体化等特点。

三、热门文章推荐

  1. node介绍
  2. npm详细安装教程
  3. 【Node系列】文件系统介绍及案例说明
  4. 【Node系列】创建第一个服务器应用
  5. 【Node系列】REPL详解
  6. 【Node系列】回调函数/事件循环
  7. 【Node系列】EventEmitter详解
相关文章
|
6月前
|
JavaScript 容器
Node.js 全局对象及其使用
Node.js 全局对象及其使用
83 4
|
28天前
|
JavaScript 前端开发 Unix
Node.js 全局对象
10月更文挑战第5天
20 2
|
3月前
|
搜索推荐 Java API
Electron V8排查问题之分析 node-memwatch 提供的堆内存差异信息来定位内存泄漏对象如何解决
Electron V8排查问题之分析 node-memwatch 提供的堆内存差异信息来定位内存泄漏对象如何解决
91 0
|
5月前
|
JavaScript 前端开发 Unix
Node.js 全局对象
Node.js 全局对象
28 2
|
11月前
【Node学习】—querystring 实现字符串转对象 对象转字符串
【Node学习】—querystring 实现字符串转对象 对象转字符串
|
Web App开发 JSON JavaScript
前端技术ES6新特性解构字符串扩展表达式箭头函数对象拓展运算符map 和 reduce Promise 模块化export import及Node.js
ECMAScript 6.0(以下简称 ES6,ECMAScript 是一种由 Ecma 国际(前身为欧洲计算机制造商协会,英文名称是 European Computer Manufacturers Association)通过 ECMA-262标准化的脚本程序设计语言)是 JavaScript 语言的下一代标准,已经在 2015 年 6 月正式发布了,并且从 ECMAScript 6 开始,开始采用年号来做版本。即 ECMAScript 2015,就是 ECMAScript6。它的目标,是使得 JavaScript 语言可以用来编写复杂的大型应用程序,成为企业级开发语言。
83 0
vue2 Elementui 树形组件怎么实现多选并获取选中节点的node对象
树形组件是我们经常用到的组件,主要场景就是:公司后台管理的部门管理,做文章目录等。
303 0
|
JavaScript API C语言
Node【Global全局对象】之【Console】
Node【Global全局对象】之【Console】
109 0
|
存储 缓存 JavaScript
Node【Global全局对象】之【Buffer】
Node【Global全局对象】之【Buffer】
118 0
|
移动开发 JavaScript API
Node【Global全局对象】之【URL】
Node【Global全局对象】之【URL】
147 0