Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/koahubjs/koahub
KoaHub.js -- 中文最佳实践Node.js Web快速开发框架。支持Koa.js, Express.js中间件。当前项目已停止维护,推荐使用Doodoo.js
https://github.com/koahubjs/koahub
koa koa2 koahub koajs node nodejs
Last synced: 28 days ago
JSON representation
KoaHub.js -- 中文最佳实践Node.js Web快速开发框架。支持Koa.js, Express.js中间件。当前项目已停止维护,推荐使用Doodoo.js
- Host: GitHub
- URL: https://github.com/koahubjs/koahub
- Owner: koahubjs
- License: mit
- Created: 2016-09-18T08:25:28.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2018-08-22T06:19:24.000Z (over 6 years ago)
- Last Synced: 2024-11-07T09:01:57.589Z (about 1 month ago)
- Topics: koa, koa2, koahub, koajs, node, nodejs
- Language: HTML
- Homepage: https://www.doodooke.com
- Size: 665 KB
- Stars: 306
- Watchers: 25
- Forks: 43
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-github-star - koahub - - 中文最佳实践Node.js Web快速开发框架。支持Koa.js, Express.js中间件。当前项目已停止维护,推荐使用Doodoo.js | koahubjs | 307 | (HTML)
README
## KoaHub.js
[![license](https://img.shields.io/github/license/koahubjs/koahub.svg?style=flat-square)](http://js.koahub.com)
[![travis-ci](https://img.shields.io/travis/koahubjs/koahub.svg?style=flat-square)](https://travis-ci.org/koahubjs/koahub)
[![codecov](https://codecov.io/gh/koahubjs/koahub/branch/master/graph/badge.svg)](https://codecov.io/gh/koahubjs/koahub)
[![Dependency Status](https://img.shields.io/david/koahubjs/koahub.svg?style=flat-square)](https://david-dm.org/koahubjs/koahub)KoaHub.js -- 中文最佳实践Node.js Web快速开发框架。支持Koa.js, Express.js中间件。当前项目已停止维护,推荐使用[Doodoo.js](https://github.com/doodooke/doodoo.js)
```javascript
//base controller, admin/controller/base.controller.js
module.exports = class extends koahub.controller {async _initialize() {
console.log('base _initialize');
}async isLogin() {
console.log('base isLogin');
}
}//index controller, admin/controller/index.controller.js
const base = require('./base.controller');
module.exports = class extends base {async _initialize() {
await super._initialize();
}async index() {
this.view(1);
}async index2() {
this.json(1, 2);
}async index3() {
await this.render('index');
}
}
```
环境要求:Node.js >= 7.6.0## 特性
* 支持koa全部中间件
* 支持使用 ES6+ 全部特性来开发项目
* 支持断点调试 ES6+ 项目
* 支持多种项目结构和多种项目环境
* 支持 Controller 中使用Koa.js的所有API
* 支持多级 Controller
* 支持自动加载
* 支持钩子机制
* 支持 Socket.io
* 支持错误处理
* 支持全局koahub变量
* 支持快捷方法
* 支持修改代码,立即生效
* 支持前置,后置,空操作
* 支持禁用控制器方法
* 支持 Restful 设计
* 支持 Common 自动加载
* 支持启动自定义
* ...## 安装
```sh
npm install koahubjs/koahub --save
```## 创建启动文件
```javascript
// app/index.js启动文件
const Koahub = require('koahub');// 初始化项目
const app = new Koahub();// 启动项目
app.run();
```## 方法
ctx上的函数或参数将自动加载到controller,例如支持 `this.body = 'Hello World!'`, ctx中具体的API请参考Koa.js, controller中的扩展方法如下。
```javascript
this.ctx;
this.next;
this.isGet();
this.isPost();
this.isAjax();
this.isPjax();
this.isMethod(method);
this.hook.add(name, action);
await this.hook.run(name, ...args);
this.download(file);
this.view(data);
this.json(data, msg, code);
this.success(data, msg);
this.error(data, msg);
await this.action(path, ...args);
```## 快捷方法
```javascript
// app/common.js 函数文件
module.exports = {
add(a, b){
return a + b;
}
}
// 控制器中可以直接通过this.add调用
```## 快捷中间件
```javascript
app.use(async function (ctx, next) {ctx.model = function() {
// ....
}
await next();
});// 控制器中可以直接通过this.model调用
```## 命令行工具
[KoaHub CLI](https://github.com/koahubjs/koahub-cli)## 配置
```javascript
// app/config/default.config.js
module.exports = {
port: 3000,
default_module: 'admin'
}//框架默认配置
//启动端口
port: 3000,//默认模块,控制器,操作
default_module: 'home',
default_controller: 'index',
default_action: 'index',//url后缀
url_suffix: '',//自动加载配置
loader: {
"controllers": {
root: 'controller',
suffix: '.controller.js',
prefix: '/',
},
"configs": {
root: 'config',
suffix: '.config.js'
},
"middlewares": {
root: 'middleware',
suffix: '.middleware.js'
}
}//中间件默认配置
//middleware顺序
middleware: ['koa-logger'],//http日志
'koa-logger': true,//favicon设置
'koa-favicon': 'www/favicon.ico',//body配置
body: {
multipart: true
},//cors配置
'koa-cors': false,//session配置
'koa-session2': false,//static配置
'koa-static-cache': false
```## 其他
```javascript
// 控制器初始化,前置,后置,空操作
async _initialize()
async _before()
async _before_index()
async index()
async _after_index()
async _after()
async _empty()// 控制器私有方法
// 方法首页字符是`_`为私有方法// 支持restful路由设置
// app/config/router.config.js
module.exports = [
['/product', {
get: "/home/product/index"
}],
['/product/:id', {
get: "/home/product/detail",
post: "/home/product/add",
put: "/home/product/update",
delete: "/home/product/delete",
}]
]
```## 开始应用
### async/await
```sh
// 下载demo
git clone https://github.com/koahubjs/koahub-demo.git
// 进入项目
cd koahub-demo
// 安装依赖
npm install
// 启动项目
npm start
```### promise
```sh
// 下载demo
git clone https://github.com/koahubjs/koahub-demo-promise.git
// 进入项目
cd koahub-demo-promise
// 安装依赖
npm install
// 启动项目
npm start
```### generator
```sh
// 下载demo
git clone https://github.com/koahubjs/koahub-demo-generator.git
// 进入项目
cd koahub-demo-generator
// 安装依赖
npm install
// 启动项目
npm start
```## 启动信息
```text
[2017-05-14 11:48:05] [Koahub] Koahub Version: 2.2.6
[2017-05-14 11:48:05] [Koahub] Koahub Website: http://js.koahub.com
[2017-05-14 11:48:05] [Koahub] Nodejs Version: v8.0.0
[2017-05-14 11:48:05] [Koahub] Nodejs Platform: darwin x64
[2017-05-14 11:48:05] [Koahub] Server Enviroment: development
[2017-05-14 11:48:05] [Koahub] Server running at: http://127.0.0.1:3000
```## 使用手册
[KoaHub.js手册](https://github.com/koahubjs/koahub/tree/master/docs/README.md)## 官网
[KoaHub.js官网](https://github.com/koahubjs)