UNPKG

horse-generator

Version:
101 lines (73 loc) 3.21 kB
# HORESE GENERATOR Opinionated. minimalist and restful api structure for web framework, such as [koa](http://koajs.com), express . Inspired by [express-generator](https://github.com/expressjs/generator) and [generator-angular-fullstack](https://github.com/angular-fullstack/generator-angular-fullstack). ## Quick Start The quickest way to get started with a koa app is to utilize the executable `horse` to generate an application as shown below: Create the app: ```sh npm install -g horse horse /projects/hello-horse && cd /projects/hello-horse ``` Install dependencies: ```sh npm install ``` ## Options - `-t, --theme [name]` switch application theme to <name> [white|green|violet|red]. Defaults to red. - `-d, --db [engine]` change database <engine> to one of [mysql|postgresql|mongo|redis|memory|disk]. Defaults to disk. - `-c, --css [engine]` add stylesheet <engine> support [sass|plain]. Defaults to plain css. - `-a, --auth [type]` add [type] authentication support [qq|wechat|local]. Defaults to local only. Use ":" as separator for multiples (f.x. local:qq:wechat). Set to `false` to disable (like `horse ... -a false`). - `-e, --template [engine]` change template engine. Support [ejs] only for now. Defaults to ejs. - `-i, --i18n` add i18n support. Translations used by [i18n-node-2](https://github.com/jeresig/i18n-node-2) ported to [koa-i18n](https://github.com/fundon/koa-i18n) - `-S, --no-session` remove [session](https://github.com/koajs/generic-session) support. Session is enabled by default. - `-f, --force` force on non-empty directory Example using layout green, mysql as db, qq and wechat authentication: ```sh horse new-horse -t green -a local:qq:wechat cd new-horse npm install node bin/www ``` Go to [http://localhost:3006](http://localhost:3006) and have fun hacking ## show me something green with auth `horse myapp -t green -a qq:wechat`: ## Structure + `app` + - `controller` plain objects to use its methods as routes + - `model` uses [mongoose](https://github.com/Automattic/mongoose) + - `proxy` + - `view` templates + - - `error` error views (401,403,404,error) + - - `layouts` layouts folder (main, error) + - - `site` application views (index, login) + `auth` authentication and authorization methods + - `local` + - `qq` + `config` routes, general app env + - `env` + `locales` if i18n option is set + `public` public folder + - `css` + - `img` + - `js` + `middleware` + `util` ## Uses + [koa](http://koajs.com) (obviously) + [ejs](https://github.com/koajs/ejs) EJS as view engine Also + [koa-bodyparser](https://github.com/koajs/body-parser) to handle post data easier + [koa-static](https://github.com/koajs/static) exposes assets (js e css) + [koa-router](https://github.com/alexmingoia/koa-router) you know, for routes Optional + [koa-generic-session](https://github.com/koajs/generic-session) if has session support + [koa-flash](https://github.com/rickharrison/koa-flash) for session flash messages + [koa-locale](https://github.com/fundon/koa-locale) if option i18n is set + [koa-i18n](https://github.com/fundon/koa-i18n) if option i18n is set ## Roadmap ## Notes ``` $ npm install -g n $ n 8.0.0 ```