中文最佳实践Node.js Web快速开发框架 KoaHub.js

码农软件 · 软件分类 · Node.js 扩展 · 2019-04-14 07:59:42

软件介绍

 介绍

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官网

本文地址:https://www.codercto.com/soft/d/3540.html

Music Recommendation and Discovery

Music Recommendation and Discovery

Òscar Celma / Springer / 2010-9-7 / USD 49.95

With so much more music available these days, traditional ways of finding music have diminished. Today radio shows are often programmed by large corporations that create playlists drawn from a limited......一起来看看 《Music Recommendation and Discovery》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器