koa-mvc
v0.0.5
Published
Koa MVC generator
Downloads
27
Maintainers
Readme
Koa MVC
Opinionated and minimalist MVC generator for koa. Inspired by express-generator.
Quick Start
The quickest way to get started with a koa app is to utilize the executable koa-mvc
to generate an application as shown below:
Create the app:
npm install -g koa-mvc
koa-mvc /projects/foo && cd /projects/foo
Install dependencies:
npm install
Rock and Roll
node --harmony --harmony_proxies app
Options
-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 [less|stylus|plain]. Defaults to plain css.-a, --auth [type]
add [type] authentication support [facebook|google|github|bitbucket|local]. Defaults to local only. Use ":" as separator for multiples (f.x. local:facebook:google). Set tofalse
to disable (likekoa-mvc ... -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, facebook and google authentication:
koa-mvc ~/www/test-koa-mvc -t green --db mysql -a local:facebook:google
cd ~/www/test-koa-mvc
npm install
node --harmony app
Go to http://localhost:3000 and have fun hacking
Enough talk, show me something
green with facebook authkoa-mvc myapp -t green -a facebook:github:google
:
Structure
configs
routes, general app stuff, authorizationmain
application configuration
auth
authorization and authentication config
database
load models and initialize the database here
routes
load controllers and define the routes
controllers
plain objects to use its methods as routessite
auth
authentication and authorization methods
locales
if i18n option is setmodels
uses Waterline ORMviews
templateserror
error views (401,403,404,error)
layouts
layouts folder (main, error)
site
application views (index, login)
web
public foldercss
js
Uses
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-passport for authentication, also passport extensions for each kind of auth
- koa-locale if option i18n is set
- koa-i18n if option i18n is set
- koa-less if you choose less as css engine
- koa-stylus if you choose stylus as css engine
Roadmap
- Finish authentication
- add swig template engine
- better i18n support (actually use it in the views to translate)
- convert css to less (works if there is raw css but it's not ideal)
- add tests
Also
- Generate controller command
- Generate model command
- Generate CRUD command
Notes
Koa currently requires node 0.11.x for the --harmony flag which exposes generators to your script. If you're running an earlier version of node you may install n, a node version manager to quickly install 0.11.x:
$ npm install -g n
$ n 0.11.13