Coder Social home page Coder Social logo

node-koa-mvc's Introduction

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 to false to disable (like koa-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 directory

    Example 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 --harmony_proxies app

Go to http://localhost:3000 and have fun hacking

Enough talk, show me something

green with facebook auth
koa-mvc myapp -t green -a facebook:github:google:

koa-mvc green app print screen koa-mvc green app login print screen

Structure

  • configs routes, general app stuff, authorization
    • main 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 routes
    • site
    • auth authentication and authorization methods
  • locales if i18n option is set
  • models uses Waterline ORM
  • views templates
    • error error views (401,403,404,error)
    • layouts layouts folder (main, error)
    • site application views (index, login)
  • web public folder
    • css
    • js

Uses

Also

Optional

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 --harmony_proxies flags which exposes generators and proxies 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

node-koa-mvc's People

Contributors

gusnips avatar gullitmiranda avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.