~ubuntu-branches/ubuntu/trusty/node-negotiator/trusty-proposed

« back to all changes in this revision

Viewing changes to examples/accept.js

  • Committer: Package Import Robot
  • Author(s): Jérémy Lal
  • Date: 2013-10-20 17:33:37 UTC
  • Revision ID: package-import@ubuntu.com-20131020173337-75k05okhr2qhqcy1
Tags: upstream-0.3.0
Import upstream version 0.3.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
(function() {
 
2
  var Negotiator, availableMediaTypes, http, key, representations, server, val;
 
3
 
 
4
  Negotiator = require('../lib/negotiator').Negotiator;
 
5
 
 
6
  http = require('http');
 
7
 
 
8
  representations = {
 
9
    'text/html': '<h1>Hello world!</h1>',
 
10
    'text/plain': 'Hello World!',
 
11
    'application/json': JSON.stringify({
 
12
      hello: 'world!'
 
13
    })
 
14
  };
 
15
 
 
16
  availableMediaTypes = (function() {
 
17
    var _results;
 
18
    _results = [];
 
19
    for (key in representations) {
 
20
      val = representations[key];
 
21
      _results.push(key);
 
22
    }
 
23
    return _results;
 
24
  })();
 
25
 
 
26
  server = http.createServer(function(req, res) {
 
27
    var mediaType, negotiator;
 
28
    negotiator = new Negotiator(req);
 
29
    console.log("Accept: " + req.headers['accept']);
 
30
    console.log("Preferred: " + (negotiator.preferredMediaTypes()));
 
31
    console.log("Possible: " + (negotiator.preferredMediaTypes(availableMediaTypes)));
 
32
    mediaType = negotiator.preferredMediaType(availableMediaTypes);
 
33
    console.log("Selected: " + mediaType);
 
34
    if (mediaType) {
 
35
      res.writeHead(200, {
 
36
        'Content-Type': mediaType
 
37
      });
 
38
      return res.end(representations[mediaType]);
 
39
    } else {
 
40
      res.writeHead(406);
 
41
      return res.end();
 
42
    }
 
43
  });
 
44
 
 
45
  server.listen(8080);
 
46
 
 
47
}).call(this);