0.0.3 • Published 11 years ago
koa-mvc-generator v0.0.3
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/fooInstall dependencies:
npm installRock and Roll
node --harmony appOptions
-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 tofalseto disable (likekoa-mvc ... -a false).-e, --template [engine]change template engine. Support ejs only for now. Defaults to ejs.-i, --i18nadd i18n support. Translations used by i18n-node-2 ported to koa-i18n-S, --no-sessionremove session support. Session is enabled by default.-f, --forceforce 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 appGo 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
configsroutes, general app stuff, authorizationmainapplication configuration
authauthorization and authentication config
databaseload models and initialize the database here
routesload controllers and define the routes
controllersplain objects to use its methods as routessite
authauthentication and authorization methods
localesif i18n option is setmodelsuses Waterline ORMviewstemplateserrorerror views (401,403,404,error)
layoutslayouts folder (main, error)
siteapplication views (index, login)
webpublic 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.130.0.3
11 years ago