horse generator for node framework
npm install horse-generator Opinionated. minimalist and restful api structure for web framework, such as koa, express . Inspired by express-generator and generator-angular-fullstack.
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
- -t, --theme [name] switch application theme to -d, --db [engine]
- change database -c, --css [engine]
- add stylesheet -a, --auth [type]
- add [type] authentication support [qq|wechat|local]. Defaults to local only.false
Use ":" as separator for multiples (f.x. local:qq:wechat). Set to 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 ported to koa-i18n-S, --no-session
- remove 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 and have fun hacking
green with auth
horse myapp -t green -a qq:wechat:
Structure
+ appcontroller
+ - plain objects to use its methods as routesmodel
+ - uses mongooseproxy
+ - view
+ - templateserror
+ - - error views (401,403,404,error)layouts
+ - - layouts folder (main, error)site
+ - - application views (index, login)auth
+ authentication and authorization methodslocal
+ -
+ - config
+ routes, general app envenv
+ - locales
+ if i18n option is setpublic
+ public foldercss
+ - img
+ - js
+ - middleware
+ util
+
+ koa (obviously)
+ ejs EJS as view engine
Also
+ koa-bodyparser to handle post data easier
+ koa-static exposes assets (js e css)
+ koa-router you know, for routes
Optional
+ koa-generic-session if has session support
+ koa-flash for session flash messages
+ koa-locale if option i18n is set
+ koa-i18n if option i18n is set
```
$ npm install -g n
$ n 8.0.0