accept.js 1.2 KB

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