The second framework assignment for Code Fellows Seattle JavaScript 401. This is a single-resource REST app using the server-side HTTP framework Koa in combination with MongoDB.
Koa is known as being a lightweight framework created by the Express team, for Node.js, running on V8.
- For both, you
require
the framework and useapp.listen
on the server. - Koa uses ES6 generators and
yield next()
- Koa uses
this.request
andthis.response
while Express uses(req,res)
- Koa does not have a built-in router, while Express does.
- Koa requires a separate middleware to handle routes.
- Koa does not use callbacks, while Express does.
- Koa has built-in error handling, while Express does not.
- Koa and Express both use the same method calls:
.get()
.put()
.post()
.delete()
There are pros and cons to Koa and Express. The freedom of choice is yours!
REST model (/api/coffee)
}
name: String,
flavor: String,
body: String,
fairTrade: Boolean,
cupPreference: {type: String, default: 'coffee cup'},
location: String
}
"dependencies": {
"glob": "^6.0.4",
"koa": "^1.1.2",
"koa-bodyparser": "^2.0.1",
"koa-mongo": "^0.5.0",
"koa-mongoose": "^1.0.9",
"koa-router": "^5.3.0",
"mongoose": "^4.3.7",
"mongoose-q": "^0.1.0"
},
"devDependencies": {
"chai": "^3.4.1",
"chai-http": "^1.0.0",
"gulp": "^3.9.0",
"gulp-eslint": "^1.1.1",
"gulp-mocha": "^2.2.0",
"gulp-util": "^3.0.7",
"mocha": "^2.3.4"
}
This server/router was written by Aaron Filson and Erika Hokanson as coursework for JavaScript 401 at Code Fellows.
This project is licensed under the terms of the MIT license.