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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

usp1994

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值