【第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演示

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

零代码Prompt应用大赛正式开始!飞桨星河社区五周年活动第一站

五周年盛典将至!抢发第一站! 在大模型时代,飞桨星河社区致力于让人人都成为大模型开发者!飞桨星河社区零代码应用开发工具链,帮助大家轻松实现灵感落地、场景化需求落地,助力每个人实现工作与生活的效能提…

Node-RED系列教程-29nodered与三菱PLC基于MC协议通信测试

安装mc通信节点: node-red-contrib-mcprotocol 包含2个节点,一个节点负责读,一个节点负责写。 本教程目前只演示读功能。由于没有硬件,首先利用hsl demo软件模拟出一个用于测试mc通信的服务端。 mc读过程如下: 输入节点开启定时即可。 MC读节点配置:

HarmonyOS开发(一):开发工具起步

1、DevEco Studio 工具下载地址:HUAWEI DevEco Studio和SDK下载和升级 | HarmonyOS开发者 DevEco Studio基础配置 Node.jsOhpm 这两个都可以在进入IDE时在工具上选择下载安装 2、HelloWorld工程 打开DevEco,那么会进入欢迎页,点击Create Project---…

Swift--字符、字符串与集合类型

系列文章目录 第一章:量值与基本数据类型 第二章:字符、字符串与集合类型 文章目录 系列文章目录字符串组合 三种集合数组集合字典类型 Swift是一种弱化指针的语言,它提供了String类型和Character类型来描述字符串与字符 //构造一个字符串 …

李开复:未来AI或助力中国成为科技“火车头”

原创 | 文 BFT机器人 6月22日,创新工场的董事长兼首席执行官李开复,受邀在一场峰会上发表演讲,主题为《AI的飞奔时代》。 中国真的能成为AI超级强国吗? 李开复在演讲上盘点过去,展望未来,分析了过去几年中…

Hologres常用语句

1、列转行 regexp_split_to_table(要分割的字段,分割关键字) select regexp_split_to_table(aa,bb, ,) 2、行转列 string_agg(要拼接的字段,拼接关键字) 进阶版--按字段名汇总转换 select A字段,string_agg(B字段,, order by 排序字段) from 表名 group by A字段

C语言基础篇4:变量与存储

1 局部变量和全局变量 在介绍局部变量和全局变量前,先了解一些关于作用域方面的内容。作用域的作用就是决定程序中的哪些语句是可用的,换句话说,就是程序中的可见性。作用域有局部作用域和全局作用域,那么局部变量就具有局部作用域…

火山引擎 DataLeap 计算治理自动化解决方案实践和思考

更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群 【导读】本文旨在探讨火山引擎 DataLeap 在处理计算治理过程中所面临的问题及其解决方案,并展示这些解决方案带来的实际收益。主要内容包括:…

专业开源人员的需求仍在增长

Linux 基金会执行总监根据 Dice.com 的一项调查结果表示:「开源正变得越来越专业化,各大公司都在寻求具备这方面技能的专业型人才。」网上有研究分析了两组「2017 年度开源工作调查与报告」,主要分析结果如下: 89% 的招聘人员表示…

代码人生里哪些书触动灵魂?技术大咖精选8本好书为你揭秘!

导语 | 在这个快节奏、信息繁杂的时代,我们总在寻找那些能够触动内心、启迪思维的知识瑰宝。书籍,无疑是我们忠诚的伙伴和引路人。10 月 18 日,腾讯云 TVP 举办了第八期 TVP 读书分享会,汇集 4 位技术大咖,为你倾情推荐…

[pytorch]设备选择以及卷积神经网络的应用

0.写在前面: 首先这篇文章还没写完,因为今天要尝试对我之前的一个框架做一个简单的更新迭代,所以目前先更新这么多. 1.关于设备的选择 首先,目前的大多数电脑都是自带一些GPU(图形计算单元,在这里被称之为cuda), 需要安装相关的驱动才能正常使用这些设备和调用他们的具体情况…

浪涌保护器(SPD)常见的几种抑制器件特点及应用

浪涌保护器,Surge protection Device,是一种为各种电子设备、仪器仪表、通讯线路提供安全防护的电子装置,适用于交流50/60HZ,额定电220V/380V的供电系统中。当电气回路或者通信线路中因为外界的干扰突然产生尖峰电流或者电压时&am…

名师助阵龙讯旷腾PWmat+半导体缺陷培训暨半导体缺陷计算大赛

半导体缺陷计算大赛 选拔赛截止日期:11月23日 参与杭州线下培训直接跳过选拔赛 大赛亮点 线上免费培训、线下限时领取免费名额 线下杭州培训可直通决赛,跳过选拔赛 线上培训有3次机会参与考试进入决赛 已购/未购用户均可参加、无身份限定 使用Mc…

el-table解决数据过少小于高度有留白的问题

问题:给el-table设置个高度,高度为500px,之后就添加如下4条数据,那么底部就没数据,直接就空白了,本文章就是为了解决这个问题,如果底部留白那么就添加几条空数据就行了.如果数据已达到高度了那么就不会留白了 1.效果 这个空列可以根据高度来决定添加几个空格子去铺满列表&…

UE基础必学系列:项目和文件结构

官方文档:https://learn.unrealengine.com/course/ 张佳亮:UE4插件相关说明文档 1、uproject,以商城下载的ActionRPG为例 {"FileVersion": 3,"EngineAssociation": "4.20","Category": "Samples","Description&qu…

Springboot+vue的人力资源管理系统(有报告)。Javaee项目,springboot vue前后端分离项目

演示视频: Springbootvue的人力资源管理系统(有报告)。Javaee项目,springboot vue前后端分离项目 项目介绍: 本文设计了一个基于Springbootvue的前后端分离的企业资产管理系统,采用M(model&…

SystemC 学习之 VCS 仿真工具安装(八)

1、安装包下载 vcs、verdi 等工具下载地址(如果下载链接失效,可以私信我) 链接:https://pan.baidu.com/s/19CtwqWcxpv-4wPyAD4_ITw 提取码:3pib vcs-mx 下载地址 链接:https://pan.baidu.com/s/1dYELrG…

如何选择共享wifi项目服务商,需要注意哪些?

在移动互联网时代,无线网络已经成为人们生活中不可或缺的一部分。随着5G时代的到来,共享WiFi项目成为了市场上备受关注的焦点。在众多共享WiFi公司中,如何选择共享wifi项目服务商合作,今天我们就来盘点下哪些公司可靠!…

Java实现一个简单的贪吃蛇小游戏

一、创建新项目 首先创建一个新的项目,并命名为贪吃蛇。 其次在贪吃蛇项目下创建一个名为images的文件夹用来存放游戏相关图片。 用到的图片如下: 游戏标题: 贪吃蛇的身体: 贪吃蛇的头部: 因为要向四个方向移动&am…

【Proteus仿真】【STM32单片机】停车场车位管理系统

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真STM32单片机控制器,使用按键、LED、蜂鸣器、LCD1602、红外传感器、74HC595模块等。 主要功能: 系统运行后,LCD1602显示进入、驶出、剩余车位数…