- Node.js 教程
- Node.js - 首页
- Node.js - 简介
- Node.js - 环境设置
- Node.js - 第一个应用程序
- Node.js - REPL 终端
- Node.js - 命令行选项
- Node.js - 包管理器 (NPM)
- Node.js - 回调概念
- Node.js - 上传文件
- Node.js - 发送电子邮件
- Node.js - 事件
- Node.js - 事件循环
- Node.js - 事件发射器
- Node.js - 调试器
- Node.js - 全局对象
- Node.js - 控制台
- Node.js - 进程
- Node.js - 扩展应用程序
- Node.js - 打包
- Node.js - Express 框架
- Node.js - RESTFul API
- Node.js - 缓冲区
- Node.js - 流
- Node.js - 文件系统
- Node.js MySQL
- Node.js - MySQL 入门
- Node.js - MySQL 创建数据库
- Node.js - MySQL 创建表
- Node.js - MySQL 插入数据
- Node.js - MySQL 查询数据
- Node.js - MySQL 条件查询
- Node.js - MySQL 排序
- Node.js - MySQL 删除数据
- Node.js - MySQL 更新数据
- Node.js - MySQL 连接查询
- Node.js MongoDB
- Node.js - MongoDB 入门
- Node.js - MongoDB 创建数据库
- Node.js - MongoDB 创建集合
- Node.js - MongoDB 插入数据
- Node.js - MongoDB 查找数据
- Node.js - MongoDB 查询
- Node.js - MongoDB 排序
- Node.js - MongoDB 删除数据
- Node.js - MongoDB 更新数据
- Node.js - MongoDB 限制结果
- Node.js - MongoDB 连接查询
- Node.js 模块
- Node.js - 模块
- Node.js - 内置模块
- Node.js - 实用程序模块
- Node.js - Web 模块
- Node.js 有用资源
- Node.js - 快速指南
- Node.js - 有用资源
- Node.js - 讨论
Node.js - 全局对象
Node.js 中的全局对象是内置对象。Node.js 运行时由许多核心模块组成。要使用任何核心模块(例如 fs 模块或 http 模块)或从 npm 安装的任何外部模块(例如 express 模块)的功能,您需要使用 require() 函数加载它们。但是,某些模块、函数、类、变量等可以直接在 JavaScript 代码中使用,无需使用 require() 函数加载它们。它们被称为全局对象。让我们看看 Node.js 中的全局类、变量和函数。
Buffer 类
Buffer 类是一个全局类,可以在应用程序中访问,而无需导入 buffer 模块。Buffer 类的一个对象存储原始数据,类似于整数数组,但对应于 V8 堆之外的原始内存分配。
您可以创建一个 10 个字节的未初始化 Buffer:
var buf = new Buffer(10);
也可以从给定的数组创建 Buffer 对象:
var buf = new Buffer([10, 20, 30, 40, 50]);
或从给定的字符串创建:
var buf = new Buffer("Simply Easy Learning", "utf-8");
您可以对 Buffer 执行不同的操作,例如读取/写入数据、将 Buffer 转换为 JSON、连接 Buffer 等。
Console 类
Console 类包含诸如 console.log()、console.error() 和 console.warn() 等方法,可用于写入任何 Node.js 流。全局 console 可在不调用 require('node:console') 的情况下使用。
以下 REPL 会话显示了全局 console 对象的功能
> console.log("Hello World");
Hello World
undefined
> console.error("Some error occurred");
Some error occurred
undefined
> console.warn("This is a warning message!");
This is a warning message!
undefined
Process 对象
process 对象是一个全局对象,尽管它是在 process 模块中定义的。它是 EventEmitter 类的实例。process 对象提供有关当前进程的信息。借助与该对象关联的大量方法和属性,可以控制当前进程。
Process 对象的属性之一是 argv 数组。它存储传递给 node 可执行文件的命令行参数。
数组中的第 0 个元素是 node 可执行文件,第一个元素是 javascript 文件,后面是传递的参数。
将以下脚本另存为 hello.js 并从命令行运行它,从命令行向它传递一个字符串参数。
const args = process.argv;
console.log(args);
const name = args[2];
console.log("Hello,", name);
在终端中,输入
PS D:\nodejs> node hello.js TutorialsPoint [ 'C:\\nodejs\\node.exe', 'D:\\nodejs\\a.js', 'TutorialsPoint' ] Hello, TutorialsPoint
process.argv0 属性存储 Node.js 启动时传递的 argv[0] 的原始值的只读副本。
Process 对象的 env 属性存储环境变量。您可以从命令行设置环境变量。在 node 可执行文件名之前为一个或多个变量赋值。
USER_ID=101 USER_NAME=admin node app.js
在脚本内部,环境变量作为 process.env 对象的属性可用
process.env.USER_ID; // "101" process.env.USER_NAME; // "admin"
有关当前进程的一些有用信息存储在 process 对象的属性中,如下例所示。
示例
console.log('Process Architecture:'+process.arch);
console.log('Current working directory:'+ process.cwd());
console.log('Process PID: '+process.pid);
console.log('Process Platform: '+process.platform);
console.log('Process Version: '+process.version);
输出
Process Architecture:x64 Current working directory:D:\nodejs Process PID: 11060 Process Platform: win32 Process Version: v20.9.0
全局计时器函数
Node.js 的 timer 模块定义了用于调度回调的函数。它们可以用作全局函数(无需导入模块)。
setTimeout() 函数用于在指定的毫秒数后运行回调。
function printHello() {
console.log( "Hello, World!");
}
// Now call above function after 2 seconds
setTimeout(printHello, 2000);
clearTimeout() 函数用于停止先前使用 setTimeout() 创建的计时器。
setInterval() 函数用于在指定的毫秒数后重复运行回调。
function printHello() {
console.log( "Hello, World!");
}
// Now call above function after 2 seconds
setInterval(printHello, 2000);
全局变量
__filename
__filename 表示正在执行的代码的文件名。这是此代码文件的解析绝对路径。对于主程序,这并不一定与命令行中使用的文件名相同。模块内部的值是该模块文件路径。
示例
创建一个名为 main.js 的 js 文件,其中包含以下代码:
// Let's try to print the value of __filename console.log( __filename );
现在运行 main.js 以查看结果:
D:\nodejs\main.js
__dirname
__dirname 表示当前正在执行的脚本所在的目录的名称。
示例
创建一个名为 main.js 的 js 文件,其中包含以下代码:
// Let's try to print the value of __dirname console.log( __dirname );
现在运行 main.js 以查看结果:
D:\nodejs
请注意,用于将给定模块导入 Node.js 运行时的 require() 函数也是一个全局函数。
全局对象
下表列出了我们在应用程序中经常使用的其他对象。有关更多详细信息,您可以参考官方文档。
