# NodeWebkit **Repository Path**: Qianrenni/node-webkit ## Basic Information - **Project Name**: NodeWebkit - **Description**: NodeWebkit:一个开源项目,专注于开发基于Node.js和WebKit技术的跨平台桌面应用框架,支持快速构建高性能的桌面应用程序。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-07-11 - **Last Updated**: 2025-07-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: Nodejs ## README # 镜像地址 推荐使用国内镜像加速 npm 包的安装: [国内镜像地址](https://registry.npmmirror.com/) 设置命令: ```shell npm config set registry https://registry.npmmirror.com ``` --- # 快速开始 ## 1. 安装 Node.js 环境 请先下载并安装 Node.js 开发环境: 🔗 [Node.js 下载地址](https://nodejs.org/en/download/) ## 2. 创建项目 打开终端,运行以下命令创建新项目: ```shell mkdir my-project cd my-project npm init -y npm install qyani-web ``` ## 3. 启动 Demo 确保 `qyani-web` 已正确安装后,运行以下命令启动示例服务: ```shell node node_modules/qyani-web/demo/index.js ``` 服务启动后,可通过浏览器访问 `http://localhost:80` 查看默认页面。 --- # 项目介绍 **qyani-web** 是一个基于 **Node.js** 的轻量级 Web 开发框架,具备以下特性: - ✅ **可扩展性**:支持中间件插件化设计 - ✅ **模块化结构**:易于维护和功能划分 - ✅ **简单易用**:提供直观 API 接口 --- ## 核心类说明 ### [WebApp](file://F:\eclipse\worakjava\backend\src\lib\web-app.ts#L6-L250) 类 这是主应用类,用于管理服务器生命周期、中间件及路由注册。 ```typescript /** * 核心类 * @class WebApp */ const app = new WebApp(); ``` ### [GroupRoute](file://F:\eclipse\worakjava\backend\src\lib\group-route.ts#L23-L152) 类 用于定义分组路由,便于组织多个路由逻辑。 ```typescript const groupRoute = new GroupRoute(); ``` --- ## 编写自定义中间件 中间件函数接受 HTTP 请求对象和响应对象,并返回布尔值或 Promise 来决定是否继续执行后续流程。 ```typescript import http from "http"; /** * 中间件接口定义 * @interface MiddleWare * @param {http.IncomingMessage} req - HTTP 请求对象 * @param {http.ServerResponse} res - HTTP 响应对象 * @returns {boolean | Promise} 返回 true 表示继续下一个中间件,false 终止请求 */ type MiddleWare = (req: http.IncomingMessage, res: http.ServerResponse) => boolean | Promise; ``` --- ## 注册中间件 可以在全局或路由分组上注册中间件以处理请求前或请求后的操作: ```typescript app.beforeRequest(middleware); // 全局请求前执行 groupRoute.beforeRequest(middleware); // 分组请求前执行 app.afterRequest(middleware); // 全局请求后执行 groupRoute.afterRequest(middleware); // 分组请求后执行 ``` --- ## 路由注册机制 ### 处理函数类型定义 ```typescript type handler = (req: http.IncomingMessage, res: http.ServerResponse) => void | boolean | Promise; ``` ### 支持的路由方法 ```typescript function get(url: string, handler: handler, beforeRequest: MiddleWare[] = [], afterRequest: MiddleWare[] = []); function post(url: string, handler: handler, beforeRequest: MiddleWare[] = [], afterRequest: MiddleWare[] = []); function put(url: string, handler: handler, beforeRequest: MiddleWare[] = [], afterRequest: MiddleWare[] = []); // 更多方法... ``` ### 注册分组路由 将分组路由挂载到主应用中: ```typescript /** * 注册分组路由 */ app.registerGroupRoute(groupRoute); ``` --- ## 启动服务 调用 [listen](file://F:\eclipse\worakjava\backend\src\lib\web-app.ts#L221-L235) 方法启动 HTTP 服务,监听指定端口: ```typescript app.listen(port = 80, callBack = () => { console.log("Server is running on port 80"); }); ``` --- ## 内置中间件列表 | 中间件名称 | 功能描述 | |-----------------------|----------------------------------| | `CorsMiddleware` | 处理跨域资源共享(CORS) | | `LogMiddleware` | 请求日志记录 | | `StaticMiddleware` | 提供静态资源访问服务 | | `BodyParserMiddleware`| 解析请求体(JSON / 表单数据) | | `ValidateMiddleware` | 请求参数校验 | --- ## 项目结构概览 ``` qyani-web/ ├── demo/ │ └── index.js # 示例入口文件 ├── dist/ │ └── lib/ │ ├── middleware/ │ │ ├── body-parser.js # body解析中间件 │ │ ├── cors.js # 跨域中间件 │ │ ├── logger.js # 日志中间件 │ │ ├── static-resources.js # 静态资源中间件 │ │ └── validate.js # 参数验证中间件 │ ├── groupRoute.js # 分组路由实现 │ └── index.js # WebApp 入口文件 ```