Node

知识点

  1. 模块系统、CommonJS 规范、NPM 包管理器
  2. 异步编程、事件机制、事件循环
  3. 文件系统操作、路径处理、Stream 流操作
  4. 网络、API、HTTP 协议、WebSocket
  5. 数据库操作、缓存、MySQL、MongoDB
  6. Node.js Web 框架
  7. 代码调试、单元测试、安全、性能优化
  8. 命令行工具和自动化构建

难点:

  • Node.js 模块路径解析流程
  • Node 多进程开发
  • 环境变量,可以在多进程中共享

概念

Node 是什么?

它是一个 javascript 的运行环境

为什么使用 Node

  1. 运行在本地,作为构建打包工具,辅助开发
  2. 运行在服务器,作为web server,后端开发
  3. 异步编程:Node.js 使用基于事件驱动的非阻塞 I/O 模型,可以实现高效的异步编程。这意味着 Node.js 可以处理大量并发请求,而不会阻塞进程,从而提高了应用程序的性能
  4. 轻量级和高效性,代码复用,模块化
  5. Node.js 适用于构建现代应用程序,例如实时 Web 应用、RESTful API、单页应用程序和流式数据处理应用程序等

Node.js 与 JavaScript 的区别

  • 相同点

    • 都使用了ECMAScrip定义的语法规范。
  • 不同点

    • JavaScript = ECMAScrip + Web API,运行在浏览器
    • Node.js = ECMAScrip + Node.js API,运行在服务器,作为web server
    • Node.js 可访问文件系统,JavaScript 不可以
    • Node.js 不需要使用 Babel 编译成低版本,可以直接使用最新的 ECMAScrip 标准
    • Node.js 同时支持 CommonJS 和 ES 模块系统

V8 JavaScript 引擎

V8 是为 Google Chrome 提供支持的 JavaScript 引擎的名称,它解析和执行 JavaScript 代码,DOM 和其他 Web 平台 API 则由浏览器提供。

随着 Node.js 的爆炸式增长,V8 成为现在支持大量用 JavaScript 编写的服务器端代码的引擎。

npm

debugger 调试

使用 VSCode

  • 在运行调试中执行对应的run script命令,服务会被运行
  • 在代码左侧添加红点

--inspect-brk

在谷歌浏览器的 DevTools 中,连接 Node,开始调试

node --inspect-brk index.js
1

后端思维

  • 服务稳定性
  • 考虑内存和 CPU(优化,扩展)
  • 日志记录
  • 安全
  • 集群和服务拆分

案例

Last Updated: 2023/3/20 13:48:48
Contributors: licong96, 黎聪, licong23@xdf.cn