KoaHub.js

Node.js Web 快速开发框架
授权协议 MIT
开发语言 JavaScript
所属分类 Web应用开发、 Node.js 扩展
软件类型 开源软件
地区 国产
投 递 者 后焕
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

KoaHub.js -- 中文最佳实践Node.js Web快速开发框架。支持Koa.js, Express.js中间件,可以直接在项目里使用 ES6/7(Generator Function, Class, Async & Await)等特性,借助 Babel 编译,可稳定运行在 Node.js 环境上。

//base controller, app/controller/home/base.controller.js
export default class extends koahub.http {

    async _initialize() {
        console.log('base _initialize');
    }

    async isLogin() {
        console.log('base isLogin');
    }
}

//index controller, app/controller/home/index.controller.js
import base from "./base.controller";
export default 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');
    }
}

项目中可以使用 ES6/7 里的所有特性,借助 Babel 编译,可以稳定运行在 >=0.12.0 的 Node.js 环境中。

特性

  • 支持koa全部中间件

  • 支持使用 ES2015+ 全部特性来开发项目

  • 支持断点调试 ES2015+ 项目

  • 支持多种项目结构和多种项目环境

  • 支持多级 Controller

  • 支持自动加载

  • 支持钩子机制

  • 支持Socket.io

  • 支持错误处理

  • 支持全局koahub变量

  • 支持快捷方法

  • 支持修改代码,立即生效

  • ...

安装

npm install github:koahubjs/koahub --save

创建启动文件

// app/index.js启动文件
import Koahub from "koahub";

//默认app是项目目录
const app = new Koahub();

app.getKoa();获取koa实例化,支持自定义koa中间件
app.getServer();获取server实例化,支持socket.io

app.run();

方法

this.ctx;
this.next;
this.method();
this.isGet();
this.isPost();
this.isAjax();
this.isPjax();
this.isMethod(method);
this.ip();
this.header(name, value);
this.status(code);
this.get(name, value);
this.post(name, value);//需中间件,且快捷方法
this.file(name, value);//需中间件,且快捷方法
this.session(name, value);//需session中间件
this.cookie.get(name, options);
this.cookie.set(name, value, options);
this.hook.add(name, action);
await this.hook.run(name, ...args);
this.host();
this.redirect(url);
this.download(file);
this.view(data);
this.json(data, msg, code);
this.success(data, msg);
this.error(data, msg);
this.state(name, value);
await this.render(tpl, locals);//需中间件
await this.action(path, ...args);

快捷中间件

// use koa-better-body 自定义post/file中间件
koa.use(async function (ctx, next) {

    if (ctx.request.fields) {
        ctx.post = ctx.request.fields;
    }

    if (ctx.request.files) {
        ctx.file = ctx.request.files;
    }

    await next();
});

目录结构

|-- app
   |   |-- addon
   |   |   |-- demo
   |   |   |   |-- config.json
   |   |   |   |-- controller
   |   |   |   |-- model
   |   |   |   `-- view
   |   |-- config
   |   |   |-- index.config.js
   |   |-- controller
   |   |   |-- home
   |   |   |   |-- index.controller.js
   |   |   |   `-- base.controller.js
   |   |   |-- admin
   |   |-- data
   |   |-- model
   |   |-- util
   |   |-- index.js
   |-- logs
   |-- node_modules
   |-- runtime
   |-- www
   |-- app.js
   |-- package.json

命令行工具

koahub

Usage: koahub [options] [command]

Commands:

start [options] [script]  koahub start script --watch --compile
controller [name]         koahub create controller
create [project]          koahub create project

Options:

-h, --help     output usage information
-V, --version  output the version number

Examples:

koahub start app/index.js --watch --compile (文件修改自动编译并且重启)
koahub controller home/article (自动创建控制器模版)
koahub create koahub-demo (自动初始化项目)

配置

// app/config/index.config.js
export default {
    port: 3000,
    default_module: 'admin'
}

//启动端口
port: 3000,

//调试模式
debug: true,

//默认模块,控制器,操作
default_module: 'home',
default_controller: 'index',
default_action: 'index',

//favicon设置
favicon: 'www/favicon.ico',

//hook中间件
hook: true,

//http日志
logger: true,

//url后缀
url_suffix: '',

//自动加载配置 such as koahub.utils
loader: {
    "utils": {
        root: 'util',
        suffix: '.util.js'
    }
}

开始应用

git clone https://github.com/koahubjs/koahub-demo.git
cd koahub-demo
npm install
npm start

启动信息:

[2016-11-28 09:56:03] [Koahub] Koahub version: 1.1.0
[2016-11-28 09:56:03] [Koahub] Koahub website: http://js.koahub.com
[2016-11-28 09:56:03] [Koahub] Server Enviroment: development
[2016-11-28 09:56:03] [Koahub] Server running at: http://127.0.0.1:3000

使用手册

KoaHub.js手册

官网

KoaHub.js官网

  • KoaHub.js — 基于 Koa.js 平台的 Node.js web 快速开发框架。可以直接在项目里使用 ES6/7(Generator Function, Class, Async & Await)等特性,借助 Babel 编译,可稳定运行在 Node.js 环境上。 官网:http://js.koahub.com //base controller, admin/controller/b

 相关资料
  • 本文向大家介绍在windows下快速搭建web.py开发框架方法,包括了在windows下快速搭建web.py开发框架方法的使用技巧和注意事项,需要的朋友参考一下   用Python进行web开发的话有很多框架供选择,比如最出名的Django,tornado等,除了这些框架之外,有一个轻量级的框架使用起来也是非常方便和顺手,就是web.py。它由一名黑客所创建,但是不幸的是这位创建者于2013年自

  • 本指南将解说如何构建并测试用于开发的 Ceph 。 开发 run-make-check.sh 脚本会安装 Ceph 依赖,一切都在调试模式下编译、并进行一系列测试,以验证结果正如所需。 $ ./run-make-check.sh 开发集群的部署 Ceph 包含一个名为 vstart.sh 的脚本(还有开发集群的部署),可以让开发者们在开发系统上用最简部署快速地测试代码。编译成功后,用下列命令开始部

  • 4.1. 1、业务边界优化 创业公司有很多可变性,要做的系统也无数,如何保证业务系统的边界是非常难的,我们其实走了很多弯路,图-稍后补 4.2. 2、静态api理论 当需求和ue定下来之后,就开始编写静态api,这样app、h5、前端就可以使用静态api完成功能,而后端也可以以静态api为标准来实现,整体效率还是比较高的。 另外还有基于api生成http请求的思考(未完成) 4.3. 3、api约

  • 本文向大家介绍jquery Easyui快速开发总结,包括了jquery Easyui快速开发总结的使用技巧和注意事项,需要的朋友参考一下 最近工作很轻松,整理了些关于easyui的datagrid的开发文档,整理的比较细致,直接复制粘贴就可以使用了。 代码内容如下: 以上代码示例给大家分享了jquery Easyui快速开发,希望大家喜欢。

  • 页面开发 Weex框架要求使用 Vue2.0 进行页面开发。开发者通过编写 *.vue 文件,基于<template>,<style>,<script> 快速构建组件化的应用。 页面开发模式 页面开发模式: 第一种:单页面(SPA) 通过 Vue-router + Vuex 来实现。这种方式是通过Router的方式来进行页面切换,如果页面不需要太多的交互效果,可以使用这种方式来实现。 第二种:独立

  • 开发调试 首先安装 Weex 官方提供的 Playground ,这是一款安装在手机(Android & iOS)端的 页面预览和调试工具。 weex-toolkit中包含了调试工具weex devtools,它是专门为Weex定制的一款实现了 Chrome Debugging Protocol 的 inspect/debug 工具,能够帮助你快速查看 app 运行状态和调试 Weex 中的 JS

  • 1.HPB是什么? 在你开发HPB 应用之前,我想为您简单介绍下HPB芯链,具体请看HPB是什么. 2.如何获得HPB代码? HPB代码已经开放,如若您想查看HPB源码,请登陆Github. 3.HPB节点介绍? 从开发者的角度来说,HPB节点分为主网的维护节点,运行BOE板卡,第一阶段为150个节点,这些节点会参与交易的打包出块验签,其他则为开发者常用的同步节点。 对于开发者来说,通常来说我们只

  • OAuth2单一登录 这是一个具有HTTP基本身份验证和单个用户帐户的Spring Cloud“Hello World”应用程序app.groovy @Grab('spring-boot-starter-security') @Controller class Application { @RequestMapping('/') String home() { 'Hello World