diff --git a/code/ssr/server.js b/code/ssr/server.js
index 7ea1fae..3bcb570 100644
--- a/code/ssr/server.js
+++ b/code/ssr/server.js
@@ -1,32 +1,31 @@
-import express from "express";
-import * as reactServer from "react-dom/server";
-import Home from "./Home.js";
-import React from "react";
+function asyncAdd(a, b, callback) {
+ setTimeout(function () {
+ callback(a + b);
+ }, 1000);
+}
-const app = express();
+function sum(...args) {
+ function fn(nums) {
+ const pList = [];
+ const len = nums.length;
+ if (len === 0) return Promise.resolve(0);
+ if (len === 1) return Promise.resolve(nums[0]);
+ // return new Pro
+ let i = 0;
+ while (i < nums.length) {
+ pList.push(
+ new Promise((resolve) => {
+ const next = typeof nums[i + 1] === "number" ? nums[i + 1] : 0;
+ asyncAdd(nums[i], next, resolve);
+ })
+ );
+ i += 2;
+ }
+ return Promise.all(pList).then((res) => {
+ return fn(res);
+ });
+ }
+ return fn(args);
+}
-const content = reactServer.renderToString(React.createElement(Home));
-
-app.get("/", (req, res) => {
- res.setHeader("Content-Type", "text/html");
- res.setHeader("Access-Control-Allow-Origin", "*");
- res.setHeader("Set-Cookie", "sid=kljsadflkjkljkljkalsdjf;p=asdfk1");
- res.send(`
-
-
- ssr
-
-
- ${content}
-
-
-
- `);
-});
-
-app.use(express.static("public"));
-
-app.listen(3000, () => {
- console.log("Server is running on port 3000");
- console.log("http://localhost:3000");
-});
+sum(1, 2, 3, 4, 5).then((result) => console.log(result));
diff --git "a/pages/6-\345\211\215\347\253\257\347\237\245\350\257\206\347\202\271/7.dom\347\233\270\345\205\263.md" "b/pages/6-\345\211\215\347\253\257\347\237\245\350\257\206\347\202\271/7.dom\347\233\270\345\205\263.md"
new file mode 100644
index 0000000..6a8b6fa
--- /dev/null
+++ "b/pages/6-\345\211\215\347\253\257\347\237\245\350\257\206\347\202\271/7.dom\347\233\270\345\205\263.md"
@@ -0,0 +1,8 @@
+# 7. DOM相关
+
+DOM节点的各种位置,比 clientHeight,scrollHeight,offsetHeight ,以及scrollTop, offsetTop,clientTop的区别?
+clientHeight:表示的是可视区域的高度,不包含 border 和滚动条
+offsetHeight:表示可视区域的高度,包 含了 border 和滚动条
+scrollHeight:表示了所有区域的高度,包含了因为滚动被隐藏的部分。
+clientTop:表示边框 border 的厚度,在未指定的情况下一般为
+scrollTop:滚动后被隐藏的高度,获取对象相对于由 offsetParent 属性指定的父坐标(css 定位的元素或 body 元素)距离顶端的高度。
\ No newline at end of file
diff --git "a/pages/7-\345\211\215\347\253\257\345\267\245\347\250\213\345\214\226/\345\211\215\347\253\257\346\211\223\345\214\205\345\267\245\345\205\267.md" "b/pages/7-\345\211\215\347\253\257\345\267\245\347\250\213\345\214\226/1.\345\211\215\347\253\257\346\211\223\345\214\205\345\267\245\345\205\267.md"
similarity index 100%
rename from "pages/7-\345\211\215\347\253\257\345\267\245\347\250\213\345\214\226/\345\211\215\347\253\257\346\211\223\345\214\205\345\267\245\345\205\267.md"
rename to "pages/7-\345\211\215\347\253\257\345\267\245\347\250\213\345\214\226/1.\345\211\215\347\253\257\346\211\223\345\214\205\345\267\245\345\205\267.md"
diff --git "a/pages/7-\345\211\215\347\253\257\345\267\245\347\250\213\345\214\226/SWC.md" "b/pages/7-\345\211\215\347\253\257\345\267\245\347\250\213\345\214\226/2.SWC.md"
similarity index 100%
rename from "pages/7-\345\211\215\347\253\257\345\267\245\347\250\213\345\214\226/SWC.md"
rename to "pages/7-\345\211\215\347\253\257\345\267\245\347\250\213\345\214\226/2.SWC.md"
diff --git "a/pages/7-\345\211\215\347\253\257\345\267\245\347\250\213\345\214\226/3.node\347\211\210\346\234\254\347\256\241\347\220\206\344\271\213volta.md" "b/pages/7-\345\211\215\347\253\257\345\267\245\347\250\213\345\214\226/3.node\347\211\210\346\234\254\347\256\241\347\220\206\344\271\213volta.md"
new file mode 100644
index 0000000..94dfe53
--- /dev/null
+++ "b/pages/7-\345\211\215\347\253\257\345\267\245\347\250\213\345\214\226/3.node\347\211\210\346\234\254\347\256\241\347\220\206\344\271\213volta.md"
@@ -0,0 +1,79 @@
+# 3.node版本管理之volta
+
+## volta介绍
+
+Volta 是一个跨平台的 Node.js 版本管理工具,它可以帮助你管理不同项目的 Node.js 版本,并提供一个统一的命令行界面来管理 Node.js 版本。
+
+Volta 可以帮助你:
+
+- 管理不同项目的 Node.js 版本
+- 在项目粒度固定 Node.js 版本 和 包管理工具
+
+
+## 安装volta
+
+Volta 可以在 macOS、Windows 和 Linux 上安装。
+
+这里介绍 macOS 上的安装方法:
+
+```bash
+curl https://get.volta.sh | bash
+```
+
+### 验证安装
+重新开一个标签,输入以下命令
+```bash
+volta --version
+```
+
+### 支持 pnpm
+
+pnpm 默认是无法接管到项目的,需要在配置文件开启:
+
+```bash
+# .bashrc 或 .zshrc
+# bash
+echo "export VOLTA_FEATURE_PNPM=1" >> ~/.bashrc
+# zsh
+echo "export VOLTA_FEATURE_PNPM=1" >> ~/.zshrc
+```
+
+## 管理 Node.js 或者包管理工具版本
+
+### 安装
+
+```bash
+# 安装node
+volta install node@14
+# 安装yarn
+volta install yarn
+# 安装pnpm
+volta install pnpm
+```
+
+## 项目固定版本
+
+```bash
+# 固定node版本
+volta pin node@14
+# 固定yarn版本
+volta pin yarn
+# 固定pnpm版本
+volta pin pnpm
+```
+
+执行以上命令后,volta 会在 package.json 文件中添加以下内容:
+
+```json
+{
+ "volta": {
+ "node": "14.15.4",
+ "yarn": "1.22.10",
+ "pnpm": "5.18.8"
+ }
+}
+```
+
+## 总结
+
+volta 底层基于 Rust 编写,性能高,并且可以在项目粒度固定 Node.js 版本 和 包管理工具,非常适合前端不同项目的管理,不需要像 nvm 那样手动切换版本,非常推荐。
\ No newline at end of file