Nodejs知识框架

一、基础环境和核心概念

1、运行环境
  • 基于Chrome V8引擎的JavaScript运行时环境,用于后端开发。
  • 特点:单线程、异步非阻塞I/O,适合高并发场景。
2、模块系统
  • Commonjs(CJS):require()导入,module.exports到处
  • ES Module(ESM):import/export语法,需配置type:module.
  • 核心内置模块:如fs,http,path等。

二、核心技术栈

1、异步编程
  • 回调函数:传统一步处理方式(注意回掉地狱)
  • promise:解决回掉嵌套,支持then、catch。
  • async、await:基于promise的语法糖,代码更简洁。
  • 事件驱动:通过events模块实现自定义事件。
2、内置模块
模块 核心功能
fs 文件读写,目录操作
http,https 创建服务器
url 解析和格式化url
stream 处理大文件或者流式文件
buffer 处理二进制数据
child_process 启动子进程
process 访问当前进程状态
querystring 解析和格式化url查询字符串

os

获取操作系统信息
path 处理文件路径
timers 定时器
util 工具函数
cluster 实现进程集群,利用多核CPU
dgram 基于UDP的网络通信
net 底层网络通信
tls/crypto tls:安全套接字层(SSL/TLS)crypto加密解密
module 模块系统相关
assert 断言测试,用于代码调试
console 控制台输出
3、核心工具链
  • npm/yarn:包管理工具。
  • Node.js CLI:命令行工具(node index.js运行脚本)
  • Nodemon:监听文件变化,自动重启服务(开发环境常用)

三、Web开发

1、基础web服务
const http = require("http");
http.createServer((req,res)=>{
  res.end('hello,Nodejs');
}).listen(3000);
2、主流框架

(1)express:最常用的web框架,支持路由、中间件、模板引擎等。

(2)Koa:新一代框架,基于async函数,更轻量。

(3)NestJs,基于TypeScript的企业级框架,借鉴Angular架构模式。

(4)Fastify:高性能框架,基于插件系统,专注低延迟和高吞吐量,适合API开发。

(5)Egg.js:阿里出品的企业级框架,基于Koa,内置插件机制,强调可扩展和稳定性。

(6)sails.js:类似Ruby on Rails的MVC框架,适合快速开发API和实时应用。

(7)Hapi:注重配置话和健壮性,适合构建可维护的API和服务端应用。

(8)Next.js:React生态的SSR/SSG框架,简化服务端渲染和静态站点生成,支持通用应用。

(9)Nuxt.js:Vue生态的SSR框架,简化服务端渲染和静态栈顶生成,支持通用应用。

(10)Gatsby:基于React的静态站点生成器(SSG),性能优异,适合博客、营销网站。

(11)Stapi:开源Headless CMS,基于Nodejs,可快速搭建API驱动的内容管理系统。

3、中间件机制

用于处理请求/响应(如日志,路由分发、权限验证),例如:express.json()、cors等。

四、数据交互和存储

1、网络请求
  • 内置http模块
  • 使用axios库
2、数据库操作
  • mysql:通过mysql2模块操作
  • postgreSQL:使用pg模块
  • MongoDB:使用mongoose或者mongodb原生驱动
  • Redis:基于ioredis或者redis模块实现缓存

五、高级主题

1、性能与优化
  • 集群cluster:利用多核CPU通过cluster模块创建子进程。
  • 流steam:处理大文件时减少内存占用(如pipe()方法)。
  • 缓存:合理使用内存和缓存,如lru-cache或者redis。
2、工程化与工具链

TypeScript:静态类型检查,提升大型项目可维护性。

Babel:将ES6+代码转译为兼容低版本的Nodejs代码。

PM2:生产环境进程管理工具(启动、监控、重启服务)。

3、微服务与中间件

构建RESTful API、GraphQL服务或消息队列(ruRabbitMQ、Kafka)。

常用工具:Express路由、swagger文档、JWT鉴权。

六、生态与应用场景

1、应用场景
  • 后端API服务(如电商、社交平台接口)。
  • 实时应用:WebSocket聊天。
  • 工具脚本:自动化部署,数据处理脚本。
2、常用生态库
  • 日志:winston、pino。
  • 测试:Jest、Mocha。
  • 安全:helmet(http安全头)、bcrypt(加密解密)。

你可能感兴趣的:(Node.js,javascript,开发语言,ecmascript)