Node.js 全局对象是一个包含了许多有用的属性和方法的对象,可以帮助 JavaScript 开发人员构建强大的服务器端应用程序。这些属性和方法可以用于处理文件、网络请求、缓冲区、定时器等。
1. 常用属性
-
process
:表示当前正在运行的 Node.js 进程。它提供了许多有用的属性和方法,例如pid
、cwd
、argv
等。console.log(process.pid); // 输出当前进程的 ID console.log(process.cwd()); // 输出当前进程的工作目录 console.log(process.argv); // 输出当前进程的命令行参数
-
console
:表示当前进程的控制台。它提供了许多有用的方法,例如log()
、info()
、error()
等。console.log("Hello, world!"); // 在控制台输出字符串 console.info("This is an informational message."); // 在控制台输出信息消息 console.error("This is an error message."); // 在控制台输出错误消息
-
global
:表示当前进程的全局作用域。它包含了所有全局变量和函数。global.myVariable = 10; // 设置全局变量 console.log(global.myVariable); // 输出全局变量
2. 常用方法
-
setTimeout()
:用于在指定的时间后执行某个函数。setTimeout(() => { console.log("Hello, world!"); }, 1000); // 1 秒后输出字符串
-
setInterval()
:用于周期性地执行某个函数。setInterval(() => { console.log("Hello, world!"); }, 1000); // 每 1 秒输出字符串
-
clearTimeout()
:用于取消setTimeout()
定时器。const timeoutId = setTimeout(() => { console.log("Hello, world!"); }, 1000);
clearTimeout(timeoutId); // 取消定时器
* `clearInterval()`:用于取消 `setInterval()` 定时器。
```js
const intervalId = setInterval(() => {
console.log("Hello, world!");
}, 1000);
clearInterval(intervalId); // 取消定时器
3. 其他属性和方法
除了上述常用属性和方法之外,Node.js 全局对象还提供了许多其他有用的属性和方法,例如:
-
Buffer
:用于处理二进制数据。const buffer = Buffer.from("Hello, world!"); console.log(buffer.toString()); // 输出字符串
-
dns
:用于解析域名。dns.lookup("www.google.com", (err, address) => { console.log(address); // 输出 IP 地址 });
-
events
:用于处理事件。const EventEmitter = require("events").EventEmitter;
const emitter = new EventEmitter();
emitter.on("event", () => { console.log("Event triggered!"); });
emitter.emit("event"); // 触发事件
* `fs`:用于处理文件系统。
```js
const fs = require("fs");
fs.readFile("file.txt", "utf8", (err, data) => {
console.log(data); // 输出文件内容
});
http
:用于创建 HTTP 服务器。const http = require("http");
const server = http.createServer((req, res) => { res.writeHead(200, { "Content-Type": "text/plain" }); res.end("Hello, world!"); });
server.listen(3000); // 监听 3000 端口
* `net`:用于创建 TCP 服务器和客户端。
```js
const net = require("net");
const server = net.createServer((socket) => {
socket.on("data", (data) => {
console.log(data.toString()); // 输出数据
});
});
server.listen(3000); // 监听 3000 端口
os
:用于获取操作系统信息。const os = require("os");
console.log(os.type()); // 输出操作系统类型 console.log(os.release()); // 输出操作系统版本 console.log(os.hostname()); // 输出主机名
* `path`:用于处理文件路径。
```js
const path = require("path");
console.log(path.join("dir1", "dir2", "file.txt")); // 输出文件路径
console.log(path.extname("file.txt")); // 输出文件扩展名
timers
:用于处理定时器。const timers = require("timers");
const timeoutId = timers.setTimeout(() => { console.log("Hello, world!"); }, 1000);
timers.clearTimeout(timeoutId); // 取消定时器
* `util`:用于提供一些实用函数。
```js
const util = require("util");
console.log(util.inspect(object)); // 输出对象的详细信息
console.log(util.format("Hello, %s!", "world")); // 输出格式化字符串
总之,Node.js 全局对象提供了许多有用的功能,可以帮助 JavaScript 开发人员构建强大的服务器端应用程序。本文介绍了 Node.js 全局对象的一些常用属性和方法,希望对读者有所帮助。