Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

server.js 1.6KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. var app = require('http').createServer(handler)
  2. , sockets = require('./sockets.js')
  3. , fs = require('fs')
  4. , path = require('path')
  5. , nodestatic = require("node-static");
  6. var io = sockets.start(app);
  7. /**
  8. * Folder from which static files will be served
  9. * @const
  10. * @type {string}
  11. */
  12. var WEBROOT = path.join(__dirname, "../client-data");
  13. /**
  14. * Port on which the application will listen
  15. * @const
  16. * @type {number}
  17. */
  18. var PORT = 8080;
  19. app.listen(PORT);
  20. console.log("Server listening on "+PORT);
  21. var fileserver = new nodestatic.Server(WEBROOT);
  22. function serveError(request, response, err) {
  23. console.warn("Error serving '"+request.url+"' : "+err.status+" "+err.message);
  24. fileserver.serveFile('error.html', err.status, {}, request, response);
  25. }
  26. function logRequest (request) {
  27. var ip = request.headers['X-Forwarded-For'] || request.connection.remoteAddress;
  28. console.log("Connection from " + ip +
  29. " ("+request.headers['user-agent']+")");
  30. }
  31. function handler (request, response) {
  32. switch(request.url) {
  33. case "/":
  34. logRequest(request);
  35. fileserver.serveFile("board.html", 200, {}, request, response);
  36. break;
  37. case "/download":
  38. var history_file = "../server-data/history.txt",
  39. headers = {"Content-Type": "text/x-wbo"};
  40. var promise = fileserver.serveFile(history_file, 200, headers, request, response);
  41. promise.on("error", function(){
  42. response.statusCode = 404;
  43. response.end("ERROR: Unable to serve history file\n");
  44. });
  45. break;
  46. default:
  47. fileserver.serve(request, response, function (err, res){
  48. if (err) serveError(request, response, err);
  49. });
  50. }
  51. }