02: API, Node.js (+ NPM), Express <3 Angular








$19.24 for Kindle edition @ Amazon
(kan leses online)
Tar et par timer å bla gjennom
(eller en uke å løse oppgavene til)
Lenes tungt på
Det er under 150 kroner
Pls read it

http://stackoverflow.com/questions/359494/does-it-matter-which-equals-operator-vs-i-use-in-javascript-comparisons

var someLanguage = { "name": "Java" };
var languages = [
{ "name": "C#" },
someLanguage,
{ "name": "Haskell" }
];
console.log(languages);
Fordeler?
Ulemper?
AJAX / AJAJ



EKSEMPEL: Hello, node (nodemon)

EKSEMPEL: Vanilla HTTP
http://en.wikipedia.org/wiki/JavaServer_Pages#mediaviewer/File:JSP_Model_2.svg
EKSEMPEL Vanilla + Express

http://phpflow.com/wp-content/uploads/2012/07/rest-websrvices.jpg
Eksponering av ressurser (typisk database)
http://jiraclone.com/...
/users
/users/theneva
/projects
/projects/issues/

Skriver en server
Config
Setter opp "endepunkter" for å ta i mot requests fra klient (Angular, app...)
EKSEMPEL: vanilla HTTP server
Legg en mappe node_modules/ i rotmappa til prosjektet
Node finner biblioteker som legges der automatisk


NPM: Package manager (som brew, apt-get)
$ npm install express
legger serveren express i mappa node_modules/

$ npm install --save express
legger serveren express i mappa node_modules/
OG referanse til express inn i package.json
$ npm install

var server = require('express')();
var bodyParser = require('body-parser');
server.use(bodyParser.json());
var port = 5432;
server.get('/api', function(req, res) {
return res.status(201).send({message: 'hi'});
});
server.post('/api', function(req, res) {
console.log(req.body);
return res.send(req.body);
});
server.listen(port);
console.log('listening on: ' + port);server.use(express.static(__dirname + './path/to/static/files'));EKSEMPEL: the $http service component
URLs are cool