【第2章 Node.js基础】2.4 Node.js 全局对象(一)

news2024/9/23 13:29:21

什么是Node.js 全局对象

对于浏览器引擎来说,JavaScript 脚本中的 window 是全局对象,而Node.js程序中的全局对象是 global,所有全局变量(除global本身外)都是global 对象的属性。全局变量和全局对象是所有模块都可以调用的。Node.is 的全局变量包括filename和 dirname 等,全局对象包括console 和process 等。

全局变量 __filename和 __dirname

  • __flename (两个下画线开头)指向当前正在执行的脚本文件名。
  • __dimname 指向当前运行的脚本所在的目录。与path.dirname( __filename)返回的路径相同
console.log("======输出开始==========")
console.log(__filename);
console.log(__dirname);
console.log("======输出结束==========")

在这里插入图片描述
上面演示 console.log(__filename); 输出了脚本文件的绝对路径。console.log(__dirname); 则输出了脚本文件所在文件夹的绝对路径。

假定有两个模块a和b,其中b是a的依赖文件,a和b的目录结构如下

/users/zxp/app/a.js
/users/zxp/app/node_modules/b/b.js

b.is中的 __filename会指向/users/zxp/app/node modules/b/b.js,
而a.js 中的 __filename 会指向/users/zxp/app/a.js。

也就是说模块依赖不会改变路径。

console 模块

console 模块类似于Web浏览器提供的JavaSctipt 控制台。该模块导出两个特定的组件:全局console 实例和 Console 类目。

1,全局console 实例

在Node.js中,全局的console对象提供了一些常用的方法来进行控制台输出。
这些方法可以帮助开发者在开发过程中进行调试和输出信息,方便定位问题和查看程序运行状态。
以下是console对象的一些常用方法:

  1. console.log(message[, …args]):以普通文本形式输出消息到控制台。
    示例代码:

    console.log("Hello, World!");
    
  2. console.error(message[, …args]):以错误文本形式输出消息到控制台。
    示例代码:

    console.error("Error occurred!");
    
  3. console.warn(message[, …args]):以警告文本形式输出消息到控制台。
    示例代码:

    console.warn("Warning: This action is not recommended!");
    
  4. console.info(message[, …args]):以信息文本形式输出消息到控制台。
    示例代码:

    console.info("Information: The server is running.");
    
  5. console.debug(message[, …args]):以调试文本形式输出消息到控制台。
    示例代码:

    console.debug("Debugging information: ", variable);
    
  6. console.dir(obj[, options]):以对象形式输出对象的详细信息到控制台。
    示例代码:

    const obj = { name: "John", age: 30 };
    console.dir(obj);
    
  7. console.time(label) 和 console.timeEnd(label):用于计算代码执行时间的开始和结束点。
    示例代码:

    console.time("myTimer");
    // 执行一些耗时操作
    console.timeEnd("myTimer");
    
  8. console.trace(message[, …args]):输出当前调用栈的跟踪信息。
    示例代码:

    console.trace("Trace this function call");
    

Console 类

Console类可用于创建具有可配置输出流的简单记录器。通过 require('console').Console 或者console.Console 进行访问。
Console类有以下方法,可以用于写入任何Nodejs流。

  • console.log()
  • console.errror()
  • console.warn()
const fs = require('fs');

const out = fs.createWriteStream('out.log');
const err = fs.createWriteStream('err.log');
const myConsole = new console.Console(out, err);
myConsole.log('hello world'); // 打印hello world到out流
myConsole.log('hello %s', 'world'); //打印hello world到out流
myConsole.error(new Error('错误信息')); //打印 [Error: 错误信息] 到 err流
const name = 'Robert';
myConsole.warn(`Danger ${name}! Danger!`); 

Console 类demo演示

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

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

相关文章

记忆科技携手中国电信,一站式存储打造坚实数字底座

11月10日,以“数字科技 焕新启航”为主题的2023数字科技生态大会在广州盛大开幕,本次大会由中国电信、广东省人民政府联合举办,是一场数字科技领域的年度盛会。忆联母公司记忆科技作为中国电信的合作伙伴之一受邀参会,深度参与了大…

常用的一些LDO芯片及使用稳定的LDO芯片推荐

LDO也是电赛中常用的电源模块。相比DCDC以及稳压器,LDO的跌落电压更小,因此两者适用场合不同。下面介绍一些常用的LDO及其使用: 1. TPS7A4501(正降压) 数据手册:https://www.ti.com.cn/cn/lit/ds/symlink…

【JUC】一、synchronized关键字与Lock接口

文章目录 1、JUC2、进程与线程3、并发与并行4、用户线程和守护线程5、对象锁和类锁6、Synchronized关键字7、synchronized案例8、Lock接口 1、JUC JUC,即java.util.concurrent这个处理线程的工具包,始于JDK1.5,其中下有三个包,为…

华为的干部管理和人才管理实践精髓(深度好文,收藏)

(本文摘自谢宁专著《华为战略管理法:DSTE实战体系》,欢迎购买) 1997年,在《华为基本法》的起草过程中,起草小组的一位人大教授问任正非:“任总,人才是不是华为的核心竞争力?”任正非的回答出人…

阿里三面被虐惨,非让我举例说明,为什么GC需要Stop the World?

最近,五哥回忆起4年前在蚂蚁金服三面的经历。关于GC的一个问题,让我记忆深刻。 当聊起来Java GC时,我提到 young gc 和 full gc都会 Stop the world。 ”为什么需要 Stop the world“,蚂蚁面试官问道。 我略微怔住,…

WH4530A可检测0-100cm环境光+距离检测功能

台湾旺泓推出的WH4530A是一款结合了先进环境光传感器(ALS)先进接近传感器(PS)和高效率的红外LED灯三合一为一体的光距感接近传感器;可测距范围0-100cm;采用I2C接口,可实现超高灵敏度、精准测距检测范围广等…

设备管理软件有什么用?如何让维修工作智能化?

随着数字化和人工智能技术的不断发展,设备管理软件已经成为了一种智能化的管理方式,它能够整合设备设施的维修资源,实现全生命周期的设备设施管理。这种软件可以帮助机构单位更好地跟踪和管理设备设施的维修请求,提高维修效率和管…

OA+CRM+HR+ERP 客户关系 进销存 财务 办公审批系统源码

功能介绍 1、个人中心 电话薄:主要用于添加联系人信息,相当于通讯录功能,可以存贮相关联系人的基本信息,姓名、联系方式、地址、邮箱等。 工作日志 :主要用于记录个人工作生活中大小事情的备忘,相当于备…

红队专题-从零开始VC++C/S远程控制软件RAT-MFC-超级终端

红队专题 招募六边形战士队员[16]超级终端(1) 招募六边形战士队员 一起学习 代码审计、安全开发、web攻防、逆向等。。。 私信联系 [16]超级终端(1) 服务端 — 本地打开cmd — 接收命令 — 执行 — 发送回显 客户端 — 远端发送命令 — 接收回显 发送开启cmd命令 --- 接受…

Rectangle:掌控你的Mac视窗,提升工作效率

你是否曾经在Mac上同时处理多个窗口,却因为无法有效管理而感到困扰?现在,一款全新的窗口管理工具正在改变这一切,它就是Rectangle。 Rectangle是一款简单而强大的窗口管理工具,适用于Mac系统。它改变了传统的窗口管理…

深度学习AI识别人脸年龄

以下链接来自 落痕的寒假 GitHub - luohenyueji/OpenCV-Practical-Exercise: OpenCV practical exercise GitHub - luohenyueji/OpenCV-Practical-Exercise: OpenCV practical exercise import cv2 as cv import time import argparsedef getFaceBox(net, frame, conf_thresh…

拆解软件定义汽车:OS突围

软件作为智能汽车的核心组成部分,由于自身较为独立和复杂的IT学科体系,其技术链路、产业分工、价值分配、商业模式相对硬件产品(如域控、激光雷达、摄像头等硬件)而言,在汽车产业内探讨和传播相对较少。 11月3日&…

GoLong的学习之路,进阶,语法之并发(并发错误处理)补充并发三部曲

这篇文章主要讲的是如何去处理并发的错误。 在Go语言中十分便捷地开启goroutine去并发地执行任务,但是如何有效的处理并发过程中的错误则是一个很棘手的问题。 文章目录 recovererrgroup recover 哦对,似乎没写错误处理的文章。后面补上。 首先&…

Mac 本地部署thinkphp8【配置环境】

PHP开发工具 我这里选择的是VSCode,里面安装PHP插件 把thinkphp的项目放到 切换到phpenv ![在这里插入图片描述](https://img-blog.csdnimg.cn/a15cc442fab74754ad86d74f6d9942e5.png URL重写如果不改,在请求的时候地址是这样的‘http://tp.com/index.php…

数据可视化模板案例:制造业提高生产力的关键

一、模板背景 在这个信息爆炸的时代,数据对于企业的成功至关重要。制造业作为全球经济的重要组成部分,如何有效利用数据提高生产效率、降低成本、优化决策,已成为行业关注的焦点。 二、方案思路 配⾊ - 科技蓝,贴合⼯业主题。 …

【算法与数据结构】78、90、LeetCode子集I, II

文章目录 一、题目二、78.子集三、90.子集II三、完整代码 所有的LeetCode题解索引,可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、78.子集 思路分析:【算法与数据结构】77、LeetCode组合。本题可以参考77题的组合问题代码&#xff0…

/etc/init.d/functions: Syntax error: “(“ unexpected (expecting “done“)

一.问题描述: ubuntu系统安装服务时报错: 二.问题解析: Ubuntu安装时默认使用dash,shell脚本命令失败,需要安装bash来运行,长期解决该问题就是重新配置dash 三:问题解决: sudo dpkg-reconfi…

迅为龙芯2K1000开发板虚拟机ubuntu启动root用户

作为嵌入式开发人员,系统的所有权限都要为我们打开,所以我们不必像运维那样,对 root 用户非常敏感,所以安装完 ubuntu 系统以后,我们要启用 root 用户。 首先我们打开 ubuntu 控制终端,然后在终端里面输入…

wireshark抓包并进行Eigrp网络协议分析

路由协议 Eigrp ​ EIGRP:Enhanced Interior Gateway Routing Protocol 即 增强内部网关路由协议。也翻译为 加强型内部网关路由协议。 EIGRP是Cisco公司的私有协议(2013年已经公有化)。 EIGRP结合了链路状态和距离矢量型路由选择协议的Cisco专用协议&a…

银行数据中心机房动力环境监控系统设计与优化

安科瑞电气股份有限公司 上海嘉定201801 摘要:结合银行数据中心建设项目,设计银行数据中心机房动力环境监控系统,分析银行数据中心机房监控对象、搭建系统监控架构,给出监控实现方法,*后针对运行一段时间出现的问题&a…