![](/images/avatar.jpg)
# Nodejs 简单介绍
\1. Node.js是一个基于Chrome V8引擎的Javascript运行环境。
\2. Node.js使用了一个事件驱动、非阻塞I/O的模型,轻量又高效
## Nodejs 的非阻塞 I/O
\1. I/O 即 Input/Output,一个系统的输入和输出
\2. 阻塞I/O和非阻塞I/O的却别就在于系统接受输入再到输出期间,能不能接受其他输入
## Node.js异步编程 - callback
\1. 回调函数格式规范
- error-first callback
- node-style callback
\2. 第一个参数是error, 后边参数是结果
## 异步 IO
EventLoop是什么 ?
一个循环,每次循环叫tick每次循环的代码叫task
## RPC调用
\1. Remote Procedure Call(远程过程调用)
\2. 和Ajax有什么相同点
- 都是两个计算机之间网络通信
- 需要双方约定一个数据格式
\3. 不同点
- 不一定使用DNS作为寻址服务
- 应用层协议一般不使用 HTTP
- 给予 TCP 或 UDP 协议
\4. 寻址/负载均衡: RPC:使用特有服务进行寻址
\5. TCP 通信方式: 单工通信、 半双工通信、全双工通信
\6. 二进制协议,更小的数据包体积、更快的编解码速率
## nodejs 可以让我们前端做的更多
### BFF(Backend for frontend) 服务于前端的后端
> 通俗的讲是浏览器和服务器端的中间渲染层
> 把后台微服务返回的数据组装成前端所需的数据
\1. 对用户侧提供HTTP服务
\2. 使用后端RPC服务
### SSR (ServerSideRendering) 服务端渲染
特性:
\1. 提高搜索引擎抓取网络的效果
\2. 提高网页首屏加载的速度
## npm 上的大神
TJ Holowaychunk 作品:
- node版本管理工具:n,
- 命令行工具:Commander.js
- Reids会话存储:connect-redis
- 基于generators流程控制: co
- git 操作: git-extras
Mathias Buus 作品:
- 视频播放器playback
- CSV 流解析器csv-parser
Dominictarr 作品:
- 流解析 JSON.parseJSON Stream
- 随机姓名random-name
- 点对点日志存储ssb-server
- 本文标题:Nodejs 介绍
- 本文作者:Dyck Deng
- 创建时间:2021-12-19 19:55:54
- 本文链接:https://blog.dengyongchao.com/2021/12/19/nodejs-intro/
- 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!