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:
npm install -g horse
horse /projects/hello-horse && cd /projects/hello-horse
Install dependencies:
npm install
-
-t, --theme [name]
switch application theme to [white|green|violet|red]. Defaults to red. -
-d, --db [engine]
change database to one of [mysql|postgresql|mongo|redis|memory|disk]. Defaults to disk. -
-c, --css [engine]
add stylesheet 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 tofalse
to disable (likehorse ... -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 directoryExample using layout green, mysql as db, qq and wechat authentication:
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
:
app
-
-
controller
plain objects to use its methods as routes
-
-
-
model
uses 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
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