Skip to content

初探 Node

Node.js 不是一门语言也不是框架,它只是基于 Google V8 引擎的 JavaScript 运行时环境

一、Nodejs 特点:

  • 异步 IO
  • 事件驱动
  • 单线程
  • ......

二、Node.js 的主要使用场景:

  • 跨平台:

    • 前端(web + H5)
    • 移动端(Hybrid) / cordova / react-native / weex
    • PC 端 / electron
  • Node 后端:

    • 核心特性 / web 应用
    • Api / rpc / 测试 / 部署 / 最佳实践
    • 微服务 / 厂商支持
  • 前端:

    • react / vue / angular ...
    • 应用实践
    • 架构
  • 工具:

    • 各种预编译 / 构建工具
    • webpack / gulp / 工程化
    • hack 技巧 / npm 等

三、Node.js 核心模块/API

md
## 核心模块

- **global:** 全局变量
- **http / https:** HTTP / HTTPS 模块
- **dns:** 域名服务器
- **events:** 事件触发器
- **fs:** 文件系统
- **process:** 进程
- **path:** 路径
- **url:** 网址
- **console:** 控制台
- **Error:** 错误
- **module:** 模块
- **util:** 实用工具

## 其他模块

- **assert:** 断言
- **perf_hooks:** 性能钩子
- **buffer:** 缓冲区
- **child_process:** 子进程
- **cluster:** 集群
- **crypto:** 加密
- **debugger:** 调试器
- **dgram:** 数据报
- **inspector:** 检查器
- **Intl:** 国际化
- **net:** 网络
- **os:** 操作系统
- **string_decoder:** 字符串解码器
- **readline:** 逐行读取
- **repl:** 交互式解释器
- **report:** 诊断报告
- **stream:**
- **timers:** 定时器
- **tls:** 安全传输层
- **tty:** 终端
- **v8:** 引擎
- **vm:** 虚拟机
- **zlib:** 压缩
- **worker_threads:** 工作线程

## 实验模块 / 旧版模块

- **querystring:** 查询字符串
- **async_hooks:** 异步钩子
- **trace_events:** 跟踪事件
- **diagnostics_channel:** 诊断通道
- **wasi WebAssembly:** 系统接口
- **webcrypto Web:** 加密
- **webstream Web:**

## 废弃模块

- **domain:**
- **punycode:** 域名代码

四、Node.js 相关的主流框架

js
// 1. Express
// 2. Koa
// 3. Nuxt (VUE)
// 4. Next (React)
// 5. Socket.io
// 6. Nest
// ......

TIP

WEB 服务器的主要任务是: 处理 HTTP 请求。

HTTP 是 Node.js 中的一等公民,设计时考虑到了流式和低延迟,这使得 Node.js 非常适合作为网络库或框架的基础。

Node.js 中的回调函数,错误优先,即第一个参数是 error。