# NodeJS-Koa **Repository Path**: xiaoli-account/node-js-koa ## Basic Information - **Project Name**: NodeJS-Koa - **Description**: Node.js 和 Koa 框架搭建的后台服务,包容Node.js的核心概念和实际开发场景,通过循序渐进的学习方式,最终能够独立开发基于Node.js的 Koa框架组成的Web 应用后台服务。 - **Primary Language**: NodeJS - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-28 - **Last Updated**: 2026-05-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # NodeJS-Koa #### 介绍 Node.js 和 Koa 框架搭建的后台服务,包容Node.js的核心概念和实际开发场景,通过循序渐进的学习方式,最终能够独立开发基于Node.js的 Koa框架组成的Web 应用后台服务。 #### 软件架构 当前为Node.js+Koa2+SQLite为基础,进行架构的初步搭建,后面会加入Redis缓存功能 #### 安装教程 ##### Windows运行 1. 安装包含原生 C++ 扩展的库(这里是 sqlite3)时,系统缺少必要的 C++ 编译环境,导致 node-gyp 无法完成编译 2. 安装 Visual Studio 生成工具,[下载 Visual Studio Installer](https://visualstudio.microsoft.com/zh-hans/visual-cpp-build-tools/) 3. 运行安装程序,在弹出的界面中勾选 “使用 C++ 的桌面开发” (Desktop development with C++ )。 4. 确保右侧安装详细信息中勾选了:`MSVC v14x - VS 2022 C++ x64/x86 生成工具`与`Windows 10/11 SDK` 5. 注意了,一旦你跟我一样windows版本是windows10,那么你还需要额外勾选一个`winows SDK (10.0.19041.0)(已停止支持)`,这项是个坑哦,windows 10一定要勾选 6. 安装完成后,重启电脑。 7. 重新运行 npm install 8. npm run koa 9. 访问网址( http://localhost:3000 )即可检查服务运行状态 #### MacOS运行 1. npm install 2. npm run koa 3. 访问网址( http://localhost:3000 )即可检查服务运行状态 #### 使用说明 1. xxxx 2. xxxx 3. xxxx #### 热更新与重启机制说明 开发模式以 `main.js` 为唯一入口:直接执行时由 `main.js` 管理 watcher,并用同一个 `main.js` 拉起 Koa 子进程。底层使用“轮询 + 文件快照差异比较”机制: 1. 轮询监听范围:`main.js`、`src`、`utils`、`public`,监听类型为 `.js`、`.json`、`.html`。 2. 每次轮询会递归收集文件的 `mtime`(最后修改时间)生成快照,再与上一次快照做 diff(新增/修改/删除)。 3. 当变更包含 `.js/.json` 时,触发“优雅重启”:先向旧进程发送 `SIGTERM`,超时再 `SIGKILL`,随后拉起新进程。 4. 当仅有 `.html` 变化时,不重启服务;watcher 进程通过 IPC 向 Koa 子进程发送 `html-changed` 消息。 5. Koa 子进程收到消息后更新热更新版本号,浏览器端脚本(`/__hot-reload/client.js`)每 1 秒轮询 ` /__hot-reload/version`,发现版本变化即自动刷新页面。 该方案的目的:后端代码改动保证服务状态一致(重启生效),页面改动提升反馈速度(直接刷新)。 #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 特技 1. 使用 Readme_XXX.md 来支持不同的语言,例如 Readme_en.md, Readme_zh.md 2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)