Name: js-handler/node_modules/restify/node_modules/negotiator/examples/charset.js 
1:
(function() {
2:
  var Buffer, Iconv, Negotiator, availableCharsets, http, iconv, key, message, messages, server, val;
3:
 
4:
  Negotiator = require('../lib/negotiator').Negotiator;
5:
 
6:
  http = require('http');
7:
 
8:
  Buffer = require('buffer').Buffer;
9:
 
10:
  Iconv = require('iconv').Iconv;
11:
 
12:
  iconv = new Iconv('UTF-8', 'ISO-8859-1');
13:
 
14:
  message = "ë";
15:
 
16:
  messages = {
17:
    'utf-8': message,
18:
    'iso-8859-1': iconv.convert(new Buffer(message))
19:
  };
20:
 
21:
  availableCharsets = (function() {
22:
    var _results;
23:
    _results = [];
24:
    for (key in messages) {
25:
      val = messages[key];
26:
      _results.push(key);
27:
    }
28:
    return _results;
29:
  })();
30:
 
31:
  server = http.createServer(function(req, res) {
32:
    var charset, negotiator;
33:
    negotiator = new Negotiator(req);
34:
    console.log("Accept-Charset: " + req.headers['accept-charset']);
35:
    console.log("Preferred: " + (negotiator.preferredCharsets()));
36:
    console.log("Possible: " + (negotiator.preferredCharsets(availableCharsets)));
37:
    charset = negotiator.preferredCharset(availableCharsets);
38:
    console.log("Selected: " + charset);
39:
    if (charset) {
40:
      res.writeHead(200, {
41:
        'Content-Type': "text/html; charset=" + charset
42:
      });
43:
      return res.end(messages[charset]);
44:
    } else {
45:
      res.writeHead(406);
46:
      return res.end();
47:
    }
48:
  });
49:
 
50:
  server.listen(8080);
51:
 
52:
}).call(this);