# koa2_xiaomi **Repository Path**: null_git/koa2_xiaomi ## Basic Information - **Project Name**: koa2_xiaomi - **Description**: Koa2重构『小米手机官网』 koa2 + ejs + nodejs + webpack - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-08-28 - **Last Updated**: 2023-08-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### Koa2重构『小米手机官网』 koa2 + ejs + nodejs + webpack #### 什么是Koa2 Koa 是一个新的web框架 后端node 作者:由Express 幕后的原班人马打造 目标:致力于成为web应用和API开发领域中的一个更小、更富有表现力、更健壮的基石 特点:通过利用async函数,Koa帮你丢弃回调函数,并有力地增强错误处理 Koa 并没有捆绑任何中间件,而是提供了一套优雅的方法,帮助您快速而愉快地编写服务端应用程序 #### Koa2 与 Express 在Koa中,一切的流程都是中间件,数据流向遵循洋葱模型,先入后出,是按照类似堆栈的方式组织和执行的 ##### Koa1、Koa2 与Express 区别 1. 异步实现方式: - Koa1: generator/yield - Koa2: async/ await - Express: 回调函数 2. 体积: - Koa2: 不绑定任何中间件,干净简洁,小而精,更容易实现定制化,扩展性好 - Express: 大而全,内置了大多数的中间件 3. 执行期上下文ctx - Koa2: 提供了应用执行期上下文ctx - Express: 不提供应用执行期上下文ctx, 需要手动处理 #### 搭建Koa2项目 1. 安装koa生成器依赖 ``` npm install -g koa-generator ``` 2. 创建Koa2项目 ``` koa2 项目名称 ``` 3. 安装项目相关依赖 ``` npm install ``` #### 项目目录 ``` |-- bin 系统必备执行文件 |-- db 数据库配置文件 |-- config 开发配置文件 |-- controller 控制器 |-- lib 自定义库文件 |-- middlewares 自定义中间件 |-- services 数据请求模型 |-- node_modules node模块集合 |-- public 打包后的静态样式、脚本、图片 |-- routes 后端路由系统 |-- src 前端相关文件夹 |-- views 后端页面渲染模板 |-- .babelrc babel兼容性配置文件 |-- app.js 应用入口 |-- deploy.config.js PM2线上部署与发布脚本 |-- webpack.config.js webpack 前端文件打包配置 ``` #### 对修饰器的实验支持功能在将来的版本中可能更改。在 “tsconfig“ 或 “jsconfig“ 中设置 “experimentalDecorators“ 选项以删除此警告。 ![image](noteImg/07.png) Visual Studio Code提示对修饰器的实验支持功能在将来的版本中可能更改。在 “tsconfig” 或 “jsconfig” 中设置 “experimentalDecorators” 选项以删除此警告。 在 Visual Studio Code 里: 文件 -> 首选项 -> 设置 搜索 “experimentalDecorators” 勾选上 ![image](noteImg/06.png) #### gyp verb check python checking for Python executable "python2" in the PATH ![image](noteImg/05.png) 因为我电脑上安装的是Python 3,但是这个which命令竟然需要Python 2,于是去StackOver flow找到如下答案 ![image](noteImg/01.png) - 删除node_modules文件夹 (rd /s /q node_modules 运行此可快速删除文件夹) - 运行 npm install --global windows-build-tools - 运行 npm install 运行npm install --global windows-build-tools命令时又出现一个PowerShell没有管理员权限的错误,于是右键以管理员权限运行PowerShell,命令执行成功 ![image](noteImg/02.png) path变量同位置分别建Python2和Python3,并设置好变量值 ![image](noteImg/03.png) ![image](noteImg/04.png) 删除node_modules文件夹 再次运行npm install命令