THIS WORKSHOP HAS MOVED TO https://github.com/koajs/workshop
In this workshop, you will learn the basics of koa, Express' spiritual successor.
In order to prepare to this training you should/must do the following List of readings and exercises. If you have questions, please open an issue and we will be glad to answer, you might be helping other participants too.
- co - the control flow engine used by koa
- koajs - the official web page for koa
- koa examples - a lot of examples for koa
- http://www.jongleberry.com - some blog posts on koa
- https://medium.com/code-adventures/1776085cb4af and various other blog posts about koa on medium
You should also view this presentation: http://cdn.rawgit.com/jonathanong/koajs/master/index.html.
This workshop assumes you've had experience with:
- node.js
- Express, Restify, or any similar node.js frameworks
- Asynchronous programming - callbacks or promises
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. If you're having trouble with this, just install it directly from nodejs.org.
Then you must install this workshop. You can either fork this workshop (recommended) or clone it:
git clone git://github.com/lxjs/training-koa
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
.
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 many other of TJ's work.
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!
The first 20-30 minutes of the workshop will be a presentation on http://cdn.rawgit.com/jonathanong/koajs/master/index.html followed by a short period of high level question and answers on Koa. After which, the hands-on workshop will begin. Any technical questions asked from the point on will be shown to the entire workshop.
- Joaquim Serafim - joaquimserafim
- André Cruz - satazor
- Daniel da Silva - danielfdsilva
- Ricardo Malta - ricmalta
- Miguel Serrano - miguelvps
- Paulo Vieira - paulovieira
- George Shank - taterbase
- Dominykas Blyžė - dymonaz
- Jean Carlos Meninno - eth0lo
- Luis Confraria - luisbug
- Marco Pantaleo - peeofive
- Nuno Costa - naflcosta
- Miguel Pereira - miguelampereira
- Ricardo Soares - rsoares
- Gábor Balázs - balazsgabor
- Daniel Wellman - danwellman
- Matthias Knoll - kohlikohl
- Jorge Dias - diasjorge
- Alejandro Dev - ainformatico
- Ricardo Quintas - rdquintas
- Matteo Collina - mcollina
- Tom Ashworth - phuu
- Mike Brevoort - mbrevoort
- Tracy Hinds - hackygolucky
- Charlie Robbins - indexzero
- Jonathan Lipps - jlipps
- Luís Ferreira - zamith
- Marcelo Conceição - marcelombc
- Bruno Azevedo - azevedo-252
- Andrew Newdigate - suprememoocow
- Espen Hovlandsdal - rexxars
- Kristoffer Brabrand - kbrabrand
- Andre Duarte - onemanclapping
- Patrick Marques - pmarques
- Thiago Dantas - tdantas
- David Cruz - dcruz
- Luis Naia - darkbls
- André Santos - andrefs
- João Jerónimo - joaojeronimo
- Frederic Hemberger - fhemberger
- Abel Soares - abelsoares
- Mario Nzualo - marionzualo
- Oliver Zeigermann - DJCordhose
- Franz Enzenhofer - franzenzenhofer
- Tom Cartwright - tomcartwrightuk
- Sebastian Golasch - asciidisco
- João Reis - joao-reis
- J Oates - joates
- Rui Patinha - rfp
- Pedro Melo Pereira - pmelopereira
- Marco Ferreira - xpt0
- Hugo Rodrigues - hugominas
- André Neves - andrefgneves
- Hugo Mota - hugomota
- Nelson Fonseca - nlfonseca
- Ricardo Correia - extravaganza47
- Tiago Duque - bikerpower
- Jorge Monteiro - jorgemonteiro
- Bruno Abrantes - inf0rmer
- João Gomes - jamgomes
- Gabriel Poça - gabrielpoca
- Pedro Jorge Santos - baldasman
- António Capelo - antoniocapelo
- João Ribeiro - JoaoCasalNovo
- Rui Carneiro - sgtcarneiro
- Marta Maio - martarsm
- João Fernandes - joaoflf
- Tiago Morais - tnbmorais
- Juliana Pereira - jvpereira
- Nathan Sobo - nathansobo
- David Oliveira - davidfoliveira
- Sugendran Ganess - sugendran
- Catarina Moura - catarinamoura
- Yacine Rezgui - yrezgui