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

什么是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.hqwc.cn/news/171916.html

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

相关文章

java 旋转方阵

public static void main(String[] args) {Scanner scanner new Scanner(System.in);// N阶方阵int n scanner.nextInt();// 构建方阵List<List<Integer>> matrix new ArrayList<>();for (int i 0; i < n; i) {List<Integer> row new ArrayLis…

书单 | 11月程序员新书播报

11月最新上架计算机书籍 1、人工智能&#xff08;第3版&#xff09; 美国经典人工智能教材第3版&#xff0c;人工智能的百科全书&#xff0c;新增深度学习及人工智能编程等内容&#xff0c;理论阐释结合动手实践&#xff0c;附赠PPT课件、配套视频及代码文件。 1.人工智能经典…

Vue中组件与插件:究竟有何不同?详细解析带你get到核心差异!

&#x1f3ac; 江城开朗的豌豆&#xff1a;个人主页 &#x1f525; 个人专栏 :《 VUE 》 《 javaScript 》 &#x1f4dd; 个人网站 :《 江城开朗的豌豆&#x1fadb; 》 ⛺️ 生活的理想&#xff0c;就是为了理想的生活 ! 目录 ⭐ 专栏简介 &#x1f4d8; 文章引言 一、组…

MySQL表的增删改查(进阶)

目录 数据库约束 约束的定义 约束类型 null约束 unique:唯一约束 default:默认值约束 primary key:主键约束(重要) foreign key:外键约束(描述两个表之间的关联) 表的设计 一般思路 三大范式 一对一 一对多 ​编辑 多对多 ​编辑 新增 查询 聚合查询 聚合函…

运动耳机哪个牌子好性价比高?运动耳机品牌排行榜前十名

​其实&#xff0c;选择运动耳机并不只是看外观&#xff0c;性能也同样重要。在选择时&#xff0c;我们需要考虑几个关键因素&#xff0c;例如稳固性、舒适度和音质等。这些都是运动耳机必备的要求&#xff0c;因为它们能帮助我们在运动时更加专注于锻炼&#xff0c;而不会被耳…

每天一点python——day67

#每天一点Python——67 #字符串判断方法&#xff1a;如图&#xff1a; #①判断指定字符串是否为合法标识符 shello,computer print(s.isidentifier()) #输出为False&#xff0c;不是合法标识符&#xff0c;这是因为标识符是由字母&#xff0c;数字&#xff0c;下划线组成&#…

识别代理IP:保障网络安全的重要一环

在互联网的世界中&#xff0c;代理服务器被广泛用于隐藏用户真实IP地址&#xff0c;带来了一些挑战&#xff0c;特别是在网络安全和欺诈检测方面。本文将探讨如何识别代理IP&#xff0c;以确保网络的安全性和可靠性。 1. 代理IP的背景与用途 代理服务器是位于用户和目标服务器…

uni.getLocation() 微信小程序 线上获取失败

开发版,体验版,用此方法都可以正确获取定位,但是在小程序的线上,总是获取失败 参考:uni-app微信小程序uni.getLocation获取位置&#xff1b;authorize scope.userLocation需要在app.json中声明permission&#xff1b;小程序用户拒绝授权后重新授权-CSDN博客 uniapp 中的 uni.…

提高软件测试覆盖率的5个重点

软件测试覆盖率是软件测试中的一个重要指标&#xff0c;它有利于保障软件质量、提高软件可靠性和可维护性。软件测试覆盖率能够发现并修复代码缺陷&#xff0c;确保代码的正确性&#xff0c;提高软件的稳定性&#xff0c;降低成本和风险。 因此进一步提高软件测试覆盖率对于软件…

万能在线预约小程序系统源码 适合任何行业在线预约小程序+预约到店模式 带完整的搭建教程

大家好啊&#xff0c;源码小编又来给大家分享啦&#xff01;随着互联网的发展和普及&#xff0c;越来越多的服务行业开始使用在线预约系统以方便客户和服务管理。例如&#xff0c;美发店、健身房、餐厅等都可以通过在线预约系统提高服务效率&#xff0c;减少等待时间&#xff0…

Linux Centos 根目录扩展分区(保级教程)

Centos 根目录扩展分区 1. 扩展背景2.列出磁盘信息3. 对磁盘进行分区4. 重启Linux5. 将PV加入卷组centos并分区6.查看分区结果 1. 扩展背景 虚拟机初始分配20G内存&#xff0c;扩容到80G。 2.列出磁盘信息 可以得知容量信息以及即将创建的PV路径&#xff08;通常为“/dev/s…

Centos7 升级到 Centos8 教程以及关于dnf包管理工具的若干问题解决方案

目录 为什么升级一、参考文档二、升级步骤三、安装git编码错误缓存问题安装git依赖冲突问题解决办法 为什么升级 jenkins 2.4版本需要CentOS8 一、参考文档 点我 二、升级步骤 1.安装epel源 yum -y install epel-release2.安装rpmconf和yum-utils yum -y install rpmco…