Node.js 基础
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。它使得 JavaScript 可以脱离浏览器环境,在服务器端运行。本教程将介绍 Node.js 的一些基础概念,包括全局对象、内置模块的使用,以及事件循环和异步编程的基础。
全局对象
在 Node.js 中,有一些对象是全局可用的,这些全局对象提供了一系列的功能,比如文件系统操作、路径处理、网络请求等。
global
global
对象是 Node.js 的全局命名空间对象。类似于浏览器中的 window
对象,你可以在任何地方访问这些全局对象,无需导入它们。
process
process
对象提供了与当前 Node.js 进程相关的信息和控制能力。你可以通过它获取环境信息、读写标准输入输出、监听进程事件等。
内置模块
Node.js 提供了一组丰富的内置模块,用于处理各种核心功能,如文件系统操作、HTTP 服务、路径操作等。
fs
fs
模块提供了文件系统相关的功能,例如读写文件、遍历目录等。
const fs = require('fs');// 异步读取文件内容
fs.readFile('example.txt', 'utf8', (err, data) => {if (err) throw err;console.log(data);
});
path
path
模块提供了路径操作相关的功能,如路径的拼接、解析等。
const path = require('path');// 解析路径
const fullPath = path.resolve('example.txt');
console.log(fullPath);
http
http
模块用于创建 HTTP 服务器和客户端。
const http = require('http');// 创建 HTTP 服务器
const server = http.createServer((req, res) => {res.writeHead(200, { 'Content-Type': 'text/plain' });res.end('Hello World\n');
});// 监听 3000 端口
server.listen(3000, () => {console.log('Server running at http://localhost:3000/');
});
事件循环和异步编程
Node.js 的大部分 API 都是异步的,采用了非阻塞模式。Node.js 使用事件驱动的模式,其中某些类型的对象(称为 “emitters”)会周期性地发出命名事件,这些事件可以被 Node.js 应用中的对象通过回调函数进行监听。
回调函数
回调函数是异步编程的基础。一个函数接受另一个函数作为参数,这个参数的函数就是回调函数。
fs.readFile('example.txt', 'utf8', (err, data) => {if (err) throw err;console.log(data);
});
事件监听器
在 Node.js 中,可以通过 EventEmitter
类的实例来绑定和监听自定义事件。
const EventEmitter = require('events');
const emitter = new EventEmitter();emitter.on('event', () => {console.log('An event occurred!');
});emitter.emit('event');
总结
在这一节中,我们介绍了 Node.js 的一些基础知识,包括全局对象如 global
和 process
,内置模块如 fs
、path
和 http
,以及事件循环和异步编程的基础概念。通过学习,你应该能够理解 Node.js 的事件驱动模型,掌握使用内置模块处理文件、路径和网络请求的方法,并开始使用回调函数和事件监听器进行简单的异步编程。
下一节将深入探讨 Node.js 的包管理工具——NPM。我们将学习如何使用 NPM 安装和管理依赖,理解 package.json
文件的结构和作用。这将为开发 Node.js 应用中使用第三方库和模块打下坚实的基础。继续跟随我们,你将更进一步掌握 Node.js 开发的核心技能。
(上述例子中example.txt
需要你在当前目录下新建文件,动手试试吧!)