前端

《Node.js 开发实战》总结

2019-11-28  本文已影响0人  iOSDevLog

课程背景介绍

什么是 Node.js ?

在 Node.js 里运行 JavaScript 跟在 Chrome 里运行 JavaScript 有什么不同?

Node.js 能用来做什么: Web 服务

构建工作流 Gulp: https://gulpjs.com

npm install gulp-cli -g
npm install gulp -D
npx -p touch nodetouch gulpfile.js
gulp --help

开发工具 Visual Studio Code: https://code.visualstudio.com

可扩展性

客户端应用 - twitch.tv

课程实战项目介绍

Node.js 版极客时间网站
• 列表页
• 打通前后台
• 服务端渲染
• 详情页
• 网页路由
• 异步加载 • 播放页
• API服务器

技术预研篇

What?

BFF 层(Backend for Frontend)

CommonJS 模块规范

npm 及 npm 包

Node.js 内置模块

Node.js.png

Node.js 的非阻塞 I/O

Node.js 异步

Node.js 异步编程 - callback

Node.js 事件循环

Node.js 异步编程 - Promise

Promise.png

Node.js 异步编程 – async/await

HTTP 服务

HTTP 是什么?

一个网页请求,包含两次 HTTP 包交换

  1. 浏览器向 HTTP 服务器发送请求 HTTP 包
  2. HTTP 服务器向浏览器返回 HTTP 包

HTTP 服务要做什么事情?

  1. 解析进来的 HTTP 请求报文
  2. 返回对应的 HTTP 返回报文

HTTP 服务框架

要了解一个框架,最好的方法是

  1. 了解它的关键功能
  2. 推导出它要解决的问题是什么

Express

核心功能:

Koa

核心功能:

Express vs Koa

RPC 调用

Ajax.png RPC.png 单工通信.png 半双工通信.png 全双工通信.png 二进制协议.png

Node.js Buffer 编解码二进制数据包

• 大小端问题
• 几个 Byte 里,高位与低位的编排顺序不同。
• 处理方法与 string 接近
• 使用 concat 而不是 + 来避免 utf-8 字符拼接问题。

• Protocol Buffer
• Google 研发的二进制协议编解码库
• 通过协议文件控制 Buffer 的格式 • 更直观
• 更好维护
• 更便于合作

Node.js net 搭建多路复用的 RPC 通道

Node.js net 模块

项目开发篇

性能调优篇

框架、工程化篇

上一篇 下一篇

猜你喜欢

热点阅读