Name: js-handler/node_modules/restify/node_modules/negotiator/examples/accept.js 
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);