Node
知识点
- 模块系统、CommonJS 规范、NPM 包管理器
- 异步编程、事件机制、事件循环
- 文件系统操作、路径处理、Stream 流操作
- 网络、API、HTTP 协议、WebSocket
- 数据库操作、缓存、MySQL、MongoDB
- Node.js Web 框架
- 代码调试、单元测试、安全、性能优化
- 命令行工具和自动化构建
难点:
- Node.js 模块路径解析流程
- Node 多进程开发
- 环境变量,可以在多进程中共享
概念
Node 是什么?
它是一个 javascript 的运行环境
为什么使用 Node
- 运行在本地,作为构建打包工具,辅助开发
- 运行在服务器,作为
web server
,后端开发 - 异步编程:Node.js 使用基于事件驱动的非阻塞 I/O 模型,可以实现高效的异步编程。这意味着 Node.js 可以处理大量并发请求,而不会阻塞进程,从而提高了应用程序的性能
- 轻量级和高效性,代码复用,模块化
- 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(优化,扩展)
- 日志记录
- 安全
- 集群和服务拆分