Node.js 基础语法全攻略:从零开启后端开发之旅
Node.js 基础语法全攻略:从零开启后端开发之旅
Node.js 让 JavaScript 走出了浏览器的沙盒,使其能够在服务器端大显身手。对于前端开发者来说,学习 Node.js 几乎没有额外的语言门槛,因为它的核心就是 JavaScript。
在这篇博客中,我们将带你快速梳理 Node.js 的基础语法与核心模块,助你平稳跨入后端开发的大门!
一、 Node.js 快速上手与运行
在浏览器中,我们通过 window 对象或 DOM API 来与页面交互;而在 Node.js 环境中,运行的是纯粹的 V8 引擎和系统级 API。
1. 编写第一个程序
创建一个名为 app.js 的文件,输入以下代码:
const message = "Hello, Node.js!";
console.log(message);
2. 运行程序
打开终端(Terminal),输入以下命令运行脚本:
node app.js
你将直接在终端看到输出结果 Hello, Node.js!。
二、 核心全局对象与变量
在 Node.js 中,没有浏览器的 window 对象,但有属于自己的全局对象与环境变量:
global: Node.js 的全局命名空间,类似于浏览器的window。__dirname: 当前模块所在的目录绝对路径。__filename: 当前模块的文件绝对路径(含文件名)。process: 进程对象,可以获取环境变量、命令行参数或控制进程退出(如process.env)。
console.log("当前文件目录:", __dirname);
console.log("当前文件全路径:", __filename);
三、 模块化开发(CommonJS 与 ES Modules)
Node.js 早期采用的是 CommonJS 规范,而现代 Node.js 也全面支持了 ES Modules (ESM)。
1. CommonJS 规范(传统经典)
使用 require() 导入模块,使用 module.exports 或 exports 导出模块。
// math.js (导出)
const add = (a, b) => a + b;
module.exports = { add };
// app.js (导入)
const { add } = require('./math');
console.log(add(2, 3)); // 输出: 5
2. ES Modules 规范(现代标准)
在 package.json 中配置 "type": "module" 后,即可直接使用 import / export:
// math.js
export const add = (a, b) => a + b;
// app.js
import { add } from './math.js';
console.log(add(2, 3));
四、 核心内置模块(Built-in Modules)
Node.js 提供了极其丰富的内置模块,无需安装即可直接使用。以下是最常用的三个:
1. 文件系统 (fs)
用于对系统的文件和目录进行读写操作。
const fs = require('fs');
// 异步读取文件
fs.readFile('./note.txt', 'utf8', (err, data) => {
if (err) throw err;
console.log(data);
});
2. 路径处理 (path)
用于处理和转换文件路径,解决不同操作系统下路径分隔符(\ vs /)不兼容的问题。
const path = require('path');
// 拼接路径
const filePath = path.join(__dirname, 'public', 'index.html');
console.log(filePath);
3. HTTP 服务 (http)
Node.js 最强大的特性之一,能够轻松构建一个高性能的 Web 服务器。
const http = require('http');
const server = http.createServer((req, res) => {
res.writeHead(200, { 'Content-Type': 'text/plain; charset=utf-8' });
res.end('你好,欢迎来到 Node.js 世界!');
});
server.listen(3000, () => {
console.log('服务器已运行在 http://localhost:3000');
});
五、 异步编程与事件循环
Node.js 采用单线程、非阻塞I/O、事件驱动模型。这意味着它能够高效处理高并发请求而不会卡死。
在日常开发中,我们需要熟练掌握处理异步的方式:
- 回调函数(Callback):早期常用,容易导致“回调地狱”。
- Promise:链式调用,改善了代码结构。
- Async / Await:目前最推荐的现代异步写法,让异步代码写起来像同步代码一样直观。
const fs = require('fs/promises'); // 使用内置的 Promise 版本
async function readFileAsync() {
try {
const data = await fs.readFile('./note.txt', 'utf8');
console.log('文件内容:', data);
} catch (error) {
console.error('读取失败:', error);
}
}
readFileAsync();
结语
Node.js 的基础语法并不复杂,核心在于理解模块化、异步编程以及如何利用强大的内置模块去操作文件和构建服务。
掌握了这些基础后,你就可以进一步学习 Express 或 Koa 等主流 Web 框架,开启更广阔的后端开发大门啦!
- 点赞
- 收藏
- 关注作者
评论(0)