Node.js入门指南
什么是Node.js?
Node.js是一个基于Chrome V8引擎的JavaScript运行时环境,它让开发者能够使用JavaScript编写服务器端代码。Node.js采用事件驱动、非阻塞I/O模型,使其轻量且高效,非常适合数据密集型实时应用。
// 一个简单的Node.js示例
const http = require('http');
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('Hello, World!\n');
});
server.listen(3000, () => {
console.log('Server running at http://localhost:3000/');
});
Node.js的核心特性
- 非阻塞I/O:Node.js使用异步编程模型,不会因为I/O操作而阻塞整个进程
- 事件驱动:基于事件的架构处理并发请求
- 单线程但高性能:通过事件循环实现高并发
- npm生态系统:拥有全球最大的开源库生态系统
- 跨平台:可在Windows、Linux、Unix、Mac OS X等平台运行
安装Node.js
安装Node.js非常简单:
- 访问Node.js官网
- 下载LTS版本(长期支持版)
- 运行安装程序
- 安装完成后,在终端验证:
node -v
npm -v
Node.js模块系统
Node.js使用CommonJS模块系统,允许你将代码分割到不同的文件和模块中。
// 导入模块
const fs = require('fs');
// 导出模块
module.exports = {
myFunction: () => {
console.log('Hello from my module!');
}
};
ES6模块语法也得到支持:
// ES6模块导入
import fs from 'fs';
// ES6模块导出
export default {
myFunction: () => {
console.log('Hello from my ES6 module!');
}
};
常用内置模块
Node.js提供了许多强大的内置模块:
- http - 创建HTTP服务器和客户端
- fs - 文件系统操作
- path - 处理文件和目录路径
- os - 操作系统相关信息
- events - 事件处理
- stream - 流数据处理
// 使用fs模块读取文件
const fs = require('fs');
fs.readFile('example.txt', 'utf8', (err, data) => {
if (err) throw err;
console.log(data);
});
npm包管理器
npm(Node Package Manager)是世界上最大的软件注册中心,包含超过100万个代码包。
常用npm命令:
# 初始化项目
npm init
# 安装包
npm install package-name
# 安装开发依赖
npm install package-name --save-dev
# 全局安装
npm install -g package-name
# 更新包
npm update package-name
# 卸载包
npm uninstall package-name
Express框架简介
Express是Node.js最流行的Web框架,简化了服务器创建过程。
const express = require('express');
const app = express();
const port = 3000;
app.get('/', (req, res) => {
res.send('Hello World!');
});
app.listen(port, () => {
console.log(`Example app listening at http://localhost:${port}`);
});
Node.js适用场景
- API服务:构建RESTful API
- 实时应用:聊天应用、实时协作工具
- 微服务:轻量级、独立的服务
- 工具开发:构建工具、脚本
- 服务器端渲染:如Next.js
- 流媒体应用:处理音频/视频流
学习资源推荐
- Node.js官方文档
- Express官方文档
- npm官方文档
- 《Node.js设计模式》
- 《深入浅出Node.js》
总结
Node.js彻底改变了JavaScript只能运行在浏览器的局面,使得全栈JavaScript开发成为可能。其非阻塞I/O模型和事件驱动架构使其特别适合I/O密集型应用。随着不断的版本更新和生态系统的壮大,Node.js已成为现代Web开发不可或缺的一部分。
希望这篇入门指南能帮助你开始Node.js之旅!如果你有任何问题,欢迎在评论区留言讨论。