{"id":13670278,"url":"https://github.com/koahubjs/koahub","last_synced_at":"2026-02-26T15:32:17.688Z","repository":{"id":81345355,"uuid":"68507520","full_name":"koahubjs/koahub","owner":"koahubjs","description":"KoaHub.js -- 中文最佳实践Node.js Web快速开发框架。支持Koa.js, Express.js中间件。当前项目已停止维护，推荐使用Doodoo.js","archived":false,"fork":false,"pushed_at":"2018-08-22T06:19:24.000Z","size":681,"stargazers_count":306,"open_issues_count":0,"forks_count":41,"subscribers_count":24,"default_branch":"master","last_synced_at":"2025-04-09T21:17:37.145Z","etag":null,"topics":["koa","koa2","koahub","koajs","node","nodejs"],"latest_commit_sha":null,"homepage":"https://www.doodooke.com","language":"HTML","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/koahubjs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2016-09-18T08:25:28.000Z","updated_at":"2024-08-27T10:20:16.000Z","dependencies_parsed_at":null,"dependency_job_id":"b76bbbc6-cc08-4e84-84b6-bd54f81bf8b5","html_url":"https://github.com/koahubjs/koahub","commit_stats":null,"previous_names":[],"tags_count":19,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koahubjs%2Fkoahub","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koahubjs%2Fkoahub/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koahubjs%2Fkoahub/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koahubjs%2Fkoahub/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/koahubjs","download_url":"https://codeload.github.com/koahubjs/koahub/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248111973,"owners_count":21049578,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["koa","koa2","koahub","koajs","node","nodejs"],"created_at":"2024-08-02T09:00:37.555Z","updated_at":"2026-02-26T15:32:12.649Z","avatar_url":"https://github.com/koahubjs.png","language":"HTML","funding_links":[],"categories":["HTML"],"sub_categories":[],"readme":"## KoaHub.js\n\n[![license](https://img.shields.io/github/license/koahubjs/koahub.svg?style=flat-square)](http://js.koahub.com)\n[![travis-ci](https://img.shields.io/travis/koahubjs/koahub.svg?style=flat-square)](https://travis-ci.org/koahubjs/koahub)\n[![codecov](https://codecov.io/gh/koahubjs/koahub/branch/master/graph/badge.svg)](https://codecov.io/gh/koahubjs/koahub)\n[![Dependency Status](https://img.shields.io/david/koahubjs/koahub.svg?style=flat-square)](https://david-dm.org/koahubjs/koahub)\n\nKoaHub.js -- 中文最佳实践Node.js Web快速开发框架。支持Koa.js, Express.js中间件。当前项目已停止维护，推荐使用[Doodoo.js](https://github.com/doodooke/doodoo.js)\n\n```javascript\n//base controller, admin/controller/base.controller.js\nmodule.exports = class extends koahub.controller {\n\n    async _initialize() {\n        console.log('base _initialize');\n    }\n\n    async isLogin() {\n        console.log('base isLogin');\n    }\n}\n\n//index controller, admin/controller/index.controller.js\nconst base = require('./base.controller');\nmodule.exports = class extends base {\n\n    async _initialize() {\n        await super._initialize();\n    }\n\n    async index() {\n        this.view(1);\n    }\n\n    async index2() {\n        this.json(1, 2);\n    }\n\n    async index3() {\n        await this.render('index');\n    }\n}\n```\n环境要求：Node.js \u003e= 7.6.0\n\n\n## 特性\n\n* 支持koa全部中间件\n* 支持使用 ES6+ 全部特性来开发项目\n* 支持断点调试 ES6+ 项目\n* 支持多种项目结构和多种项目环境\n* 支持 Controller 中使用Koa.js的所有API\n* 支持多级 Controller\n* 支持自动加载\n* 支持钩子机制\n* 支持 Socket.io\n* 支持错误处理\n* 支持全局koahub变量\n* 支持快捷方法\n* 支持修改代码，立即生效\n* 支持前置，后置，空操作\n* 支持禁用控制器方法\n* 支持 Restful 设计\n* 支持 Common 自动加载\n* 支持启动自定义\n* ...\n\n## 安装\n\n```sh\nnpm install koahubjs/koahub --save\n```\n\n## 创建启动文件\n\n```javascript\n// app/index.js启动文件\nconst Koahub = require('koahub');\n\n// 初始化项目\nconst app = new Koahub();\n\n// 启动项目\napp.run();\n```\n\n## 方法\n\nctx上的函数或参数将自动加载到controller，例如支持 `this.body = 'Hello World!'`, ctx中具体的API请参考Koa.js, controller中的扩展方法如下。\n\n```javascript\nthis.ctx;\nthis.next;\nthis.isGet();\nthis.isPost();\nthis.isAjax();\nthis.isPjax();\nthis.isMethod(method);\nthis.hook.add(name, action);\nawait this.hook.run(name, ...args);\nthis.download(file);\nthis.view(data);\nthis.json(data, msg, code);\nthis.success(data, msg);\nthis.error(data, msg);\nawait this.action(path, ...args);\n```\n\n## 快捷方法\n\n```javascript\n// app/common.js 函数文件\nmodule.exports = {\n    add(a, b){\n        return a + b;\n    }\n}\n// 控制器中可以直接通过this.add调用\n```\n\n## 快捷中间件\n\n```javascript\napp.use(async function (ctx, next) {\n\n    ctx.model = function() {\n        // ....\n    }\n    await next();\n});\n\n// 控制器中可以直接通过this.model调用\n```\n\n\n## 命令行工具\n[KoaHub CLI](https://github.com/koahubjs/koahub-cli)\n\n## 配置\n```javascript\n// app/config/default.config.js\nmodule.exports = {\n    port: 3000,\n    default_module: 'admin'\n}\n\n//框架默认配置\n//启动端口\nport: 3000,\n\n//默认模块，控制器，操作\ndefault_module: 'home',\ndefault_controller: 'index',\ndefault_action: 'index',\n\n//url后缀\nurl_suffix: '',\n\n//自动加载配置\nloader: {\n    \"controllers\": {\n        root: 'controller',\n        suffix: '.controller.js',\n        prefix: '/',\n    },\n    \"configs\": {\n        root: 'config',\n        suffix: '.config.js'\n    },\n    \"middlewares\": {\n        root: 'middleware',\n        suffix: '.middleware.js'\n    }\n}\n\n//中间件默认配置\n//middleware顺序\nmiddleware: ['koa-logger'],\n\n//http日志\n'koa-logger': true,\n\n//favicon设置\n'koa-favicon': 'www/favicon.ico',\n\n//body配置\nbody: {\n    multipart: true\n},\n\n//cors配置\n'koa-cors': false,\n\n//session配置\n'koa-session2': false,\n\n//static配置\n'koa-static-cache': false\n```\n\n## 其他\n```javascript\n// 控制器初始化，前置，后置，空操作\nasync _initialize()\nasync _before()\nasync _before_index()\nasync index()\nasync _after_index()\nasync _after()\nasync _empty()\n\n// 控制器私有方法\n// 方法首页字符是`_`为私有方法\n\n// 支持restful路由设置\n// app/config/router.config.js\nmodule.exports = [\n    ['/product', {\n        get: \"/home/product/index\"\n    }],\n    ['/product/:id', {\n        get: \"/home/product/detail\",\n        post: \"/home/product/add\",\n        put: \"/home/product/update\",\n        delete: \"/home/product/delete\",\n    }]\n]\n```\n\n\n## 开始应用\n\n### async/await\n```sh\n// 下载demo\ngit clone https://github.com/koahubjs/koahub-demo.git\n// 进入项目\ncd koahub-demo\n// 安装依赖\nnpm install\n// 启动项目\nnpm start\n```\n\n### promise\n```sh\n// 下载demo\ngit clone https://github.com/koahubjs/koahub-demo-promise.git\n// 进入项目\ncd koahub-demo-promise\n// 安装依赖\nnpm install\n// 启动项目\nnpm start\n```\n\n### generator\n```sh\n// 下载demo\ngit clone https://github.com/koahubjs/koahub-demo-generator.git\n// 进入项目\ncd koahub-demo-generator\n// 安装依赖\nnpm install\n// 启动项目\nnpm start\n```\n\n## 启动信息\n\n```text\n[2017-05-14 11:48:05] [Koahub] Koahub Version: 2.2.6\n[2017-05-14 11:48:05] [Koahub] Koahub Website: http://js.koahub.com\n[2017-05-14 11:48:05] [Koahub] Nodejs Version: v8.0.0\n[2017-05-14 11:48:05] [Koahub] Nodejs Platform: darwin x64\n[2017-05-14 11:48:05] [Koahub] Server Enviroment: development\n[2017-05-14 11:48:05] [Koahub] Server running at: http://127.0.0.1:3000\n```\n\n\n## 使用手册\n[KoaHub.js手册](https://github.com/koahubjs/koahub/tree/master/docs/README.md)\n\n## 官网\n[KoaHub.js官网](https://github.com/koahubjs)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkoahubjs%2Fkoahub","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkoahubjs%2Fkoahub","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkoahubjs%2Fkoahub/lists"}