Koa Training Workshop
JavaScript HTML Shell
Clone or download
hemanth Merge pull request #16 from koajs/snyk-fix-be374d6b
[Snyk Update] New fixes for 1 vulnerable dependency path
Latest commit 5c251cc Oct 30, 2017
Failed to load latest commit information.
01-co init Jun 29, 2014
02-hello-world init Jun 29, 2014
03-routing init Jun 29, 2014
04-bodies init Jun 29, 2014
05-error-handling Update README.md Jun 9, 2015
06-content-negotiation Fix typo Oct 22, 2014
07-content-headers init Jun 29, 2014
08-decorators init Jun 29, 2014
09-templating remove npm log Jun 29, 2014
10-authentication init Jun 29, 2014
.gitignore Add .gitignore Oct 22, 2014
LICENSE init Jun 29, 2014
README.md readme: remove broken link Jun 27, 2015
Vagrantfile init Jun 29, 2014
package.json fix: package.json to reduce vulnerabilities Oct 29, 2017
provision-node.sh init Jun 29, 2014



In this workshop, you will learn the basics of koa, Express' spiritual successor. This workshop was created for the 2014 LXJS conference in Lisbon, Portugal, and will be continuously maintained. If you have any questions or have suggestions for additional exercises, please let us know!


This workshop assumes you've had experience with:

  • node.js
  • Express, Restify, or any similar node.js frameworks
  • Asynchronous programming - callbacks or promises

ES6 generators are relatively new. This training will only give you a superficial look into generators. You should read these resources before and after doing this workshop:


Install node 0.11.13+. Using nvm, you can install it like this:

nvm install 0.11.13
nvm use 0.11.13

You can also install it directly from http://nodejs.org or using various other node version managers such as n.

Then you must install this workshop. You can either fork this workshop (recommended) or clone it:

git clone git://github.com/koajs/workshop
cd workshop

Then install all the dependencies:

npm install
npm install -g mocha

Go through each training, which are stored in folders, in numerical older. Read the README file, edit the index.js files, then run each test by executing the following:

mocha --harmony-generators test.js

If you get an error message like SyntaxError: Unexpected token *, this means you didn't run the the process with --harmony-generators.

Learning more than just Koa

Although writing tests is not part of this workshop, you should still learn how they work. An important part of creating apps is creating the tests for it. Inspect the test.js files and see how supertest and mocha are used, both of which are used in Koa, Express, and libraries and frameworks. You will also see what is expected from your sample apps by reading the tests.

After you finish each training, you may want to git commit so you have a history of what you've done:

git commit -a -m "i finished training 1!"

Many small commits is good practice!