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

« back to all changes in this revision

Viewing changes to examples/charset.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 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);