【Node系列】Node全局对象

文章目录

  • 一、全局对象
  • 二、node介绍
  • 三、热门文章推荐

一、全局对象

  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详解

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/667475.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

01-操作系统_名词_文件下载_反弹

操作系统_名词_文件下载_反弹 一、渗透测试1.1、POC、EXP、Payload与Shellcode1.2、后门1.3、木马1.4、反弹1.5、回显1.6、跳板1.7、黑白盒测试1.8、暴力破解1.9、社会工程学1.10、撞库1.11、ATT&CK 二、案例演示2.1、基础案例1:操作系统-用途&命令&权限…

Android学习之路(27) ProGuard,混淆,R8优化

前言 使用java编写的源代码编译后生成了对于的class文件,但是class文件是一个非常标准的文件,市面上很多软件都可以对class文件进行反编译,为了我们app的安全性,就需要使用到Android代码混淆这一功能。 针对 Java 的混淆&#x…

【Docker】Docker Registry(镜像仓库)

文章目录 一、什么是 Docker Registry二、镜像仓库分类三、镜像仓库工作机制四、常用的镜像仓库五、常用命令镜像仓库命令镜像命令(部分)容器命令(部分) 六、docker镜像仓库实战综合实战一:搭建一个 nginx 服务综合实战二:Docker hub上创建自己私有仓库综…

B站课程评分

Spring6 https://www.bilibili.com/video/BV1Ft4y1g7Fb/ 评价: 推荐一看 配套文档优秀, 老师口齿清晰, 条理不错. mybatis https://www.bilibili.com/video/BV1JP4y1Z73S/?spm_id_from333.337.search-card.all.click 评价: 推荐一看 配套文档优秀, 老师口齿清晰, 条理不错…

等变和不变 、向量神经元(vector neurons)是什么?

等变和不变 等变:如果输入是一个旋转后的椅子,那么输出也应该是一个旋转后的椅子 不变:如果输入是一个旋转后的椅子,那么输出应该是一个椅子,而不是一只狗。 向量神经元(vector neurons) 向量…

如何监控摄像头是否在线?有什么工具推荐

WGCLOUD监控系统 我们项目中,摄像头用的WGCLOUD监控系统来监控的,主要两种方式来监控 一种是监控摄像头的端口,使用WGCLOUD的端口监控模块 一种是PING摄像头的IP,使用WGCLOUD的ping监测模块 这两种方式比较简单,也…

1997-2022年中央对各省份一般公共预算转移支付数据

1997-2022年中央对各省份一般公共预算转移支付数据 1、时间:1997-2022年 2、范围:31省 3、指标:一般公共预算转移支付 4、来源:wind 财政部 5、指标解释:一般性转移支付又称体制性转移支付,是指上级政…

C++ 新特性 lamada表达式

本篇文章来介绍一下lamada表达式吧 lamada表达式相信大家已经很熟悉了 这里再总结一下 1.lamada表达式语法: [capture-list] (parameter-list) -> return-type { body } capture-list:捕获列表,用于指定在lambda函数体中可访问的外部变量。paramete…

【2024.2.4练习】国王游戏

题目描述 题目思路 涉及排列组合求最优解问题,数据大考虑是否满足某种贪心策略。 假设不除以右手的数字,那么获得金币数量最多的显然为最后一个人。左手数字最大的应排在最后一位。在右手有数字的情况下,不妨也尝试从最后一个人开始排。 假…

Element UI+Spring Boot进行CRUD的实例

ElementUI安装与使用指南 前端代码:点击查看learnelementuispringboot项目源码 后端代码:点击查看 LearnElementUiAndSpringBoot 一、前端配置 安装axios axios官网axios中文文档安装指令:npm install axios 二、后端配置 springboot3m…

BLIP2——采用Q-Former融合视觉语义与LLM能力的方法

BLIP2——采用Q-Former融合视觉语义与LLM能力的方法 FesianXu 20240202 at Baidu Search Team 前言 大规模语言模型(Large Language Model,LLM)是当前的当红炸子鸡,展现出了强大的逻辑推理,语义理解能力,而视觉作为人…

YOLOv8进阶 | 如何用yolov8训练自己的数据集(以安全帽佩戴检测举例)

前言:Hello大家好,我是小哥谈。YOLOv8是一种目标检测算法,它是YOLO(You Only Look Once)系列算法的最新版本。本节课就带领大家如何基于YOLOv8来训练自己的目标检测模型,本次作者就以安全帽佩戴检测为案例进…

华为机考入门python3--(7)牛客7-取近似值

分类:数字 知识点: str转float float(str) 向上取整 math.ceil(float_num) 向下取整 math.floor(float_num) 题目来自【牛客】 import math def round_to_int(float_num): # 如果小数点后的数值大于等于0.5,则向上取整&#xf…

虚拟机克隆的三种方式:全量克隆、快速全量克隆、链接克隆

虚拟机克隆的三种方式:全量克隆、快速全量克隆、链接克隆 快速全量克隆 特点:虚拟机启动快、拍平后数据独立 场景:快速发放独立的虚拟机,减少等待虚拟机部署完成时间,能够快速提供用户使用虚拟机。 实现方式:通过对…

Fink CDC数据同步(一)环境部署

1 背景介绍 Apache Flink 是一个框架和分布式处理引擎,用于在无边界和有边界数据流上进行有状态的计算。Flink 能在所有常见集群环境中运行,并能以内存速度和任意规模进行计算。 Flink CDC 是 Apache Flink 的一组源连接器,基于数据库日志的…

【SpringBoot】RBAC权限控制

📝个页人主:五敷有你 🔥系列专栏:SpringBoot⛺️稳重求进,晒太阳 权限系统与RBAC模型 权限 为了解决用户和资源的操作关系, 让指定的用户,只能操作指定的资源。 权限功能 菜单权限&a…

windows下安装go

下载golang Go 官网下载地址: https://golang.org/dl/ Go 官方镜像站(推荐): https://golang.google.cn/dl/ 选择安装包 验证有没有安装成功 查看 go 环境 说明 : Go1.11 版本之后无需手动配置环境变量&#xff0c…

29 python快速上手

Python操作MySQL和实战 1. 事务1.1 MySQL客户端1.2 Python代码 2. 锁2.1 排它锁2.2 共享锁 3. 数据库连接池4. SQL工具类4.1 单例和方法4.2 上下文管理 5.其他总结 目标:掌握事务和锁以及Python操作MySQL的各种开发必备知识。 概要: 事务锁数据库连接池…

Weblogic反序列化漏洞分析之CVE-2021-2394

目录 简介 前置知识 Serializable示例 Externalizable示例 联系weblogic ExternalizableLite接口 ExternalizableHelperl类 JdbcRowSetImpl类 MethodAttributeAccessor类 AbstractExtractor类 FilterExtractor类 TopNAggregator$PartialResult类 SortedBag$Wrappe…

【测试运维】web自动化全知识点笔记第1篇:什么是Web自动化测试(已分享,附代码)

本系列文章md笔记(已分享)主要讨论Web自动化测试相关知识。了解什么是自动化,理解什么是自动化测试以及为什么要使用自动化测试。具体包含:WebDriver的基本操作,WebDriver的鼠标、键盘操作,下拉选择框、警告…