Koan.js: A Koa.js Application Boilerplate
What is Koa.js?
Koa.js is a modern Web framework designed by the team behind Express.js. While being lean and minimalistic, it has all the functionality needed in order to create robust and powerful Web-applications.
So why do we need Koan.js?
An average Web-application often contains some common components (e.g. routing, public folder, view rendering, etc.), and Koan.js provides you with a boilerplate having many of these components already in place. Also, it proposes a way to organize application features.
Is it the right way to build Web-applications with Koa.js?
It's just one of many, many possible ways. The beauty of Koa.js (or Express.js) is in its incredible flexibility giving you freedom to organize your application however you feel is right. But if you want just save your time and go with an existing solution, Koan.js definitely worth a shot.
Installation
sudo npm install -g koan
Usage
-
koan new myapp
creates a subfoldermyapp
in the current directory with the new application boilerplate in it. - Use
npm install
to install dependencies. - Start your application with
koan start
(or just usualnode index.js
). - Run tests with
npm test
.
Configuration
- Add or disable middleware your new Koan.js application requires in
config/middleware.js
. - Configure your routes in
config/routes.js
. - Configure view scripts templating in
config/views.js
. - Set other application options in
config/options.js
, they will be available during runtime viaapp.options
.
Scaffolding
- Run
koan controller <controllerName>
while inside the project root in order to generate a new controller. - Run
koan model <modelName>
while inside the project root in order to generate a new model. - Run
koan resource <resourceName>
while inside the project root in order to generate both controller and model (no automated RESTful routing generation is implemented at this point, so you will have to describe the routes manually).
More scaffolds to come.
Dependencies
- Koa.js as the main application framework,
- Koan-views for template rendering with layouts,
- Koan-errors for error handling,
- Koa-route for routing,
- Lodash utilities,
- Commander for CLI,
- Fs-extra for recursive file system operations,
- Koa-compose to compose middleware.
Contributions
- are welcome;
- should be tested;
- should follow Koa.js coding style.
License
Copyright (c) 2013-2014 Ruslan Bredikhin