Public API for a society manager application

index.js 1.9KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. var express = require('express');
  2. var serveIndex = require('serve-index');
  3. var https = require('https');
  4. var app = express();
  5. var route_manager = require("./utils/route-manager.js");
  6. var bodyParser = require('body-parser');
  7. var FileStreamRotator = require('file-stream-rotator');
  8. var morgan = require('morgan');
  9. var fs = require('fs');
  10. var logDirectory = 'log'
  11. var production = process.argv[2];
  12. // ensure log directory exists
  13. fs.existsSync(logDirectory) || fs.mkdirSync(logDirectory)
  14. // create a rotating write stream
  15. var accessLogStream = FileStreamRotator.getStream({
  16. date_format: 'YYYYMMDD',
  17. filename: logDirectory + '/access-%DATE%.log',
  18. frequency: 'daily',
  19. verbose: false
  20. })
  21. // setup the logger
  22. app.use(morgan('short', {stream: accessLogStream}))
  23. app.use(morgan('short'));
  24. app.use(function(req, res, next) {
  25. res.header("Access-Control-Allow-Origin", "*");
  26. res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
  27. next();
  28. });
  29. app.use(bodyParser.json()); // for parsing application/json
  30. app.use(bodyParser.urlencoded({ extended: true })); // for parsing application/x-www-form-urlencoded
  31. app.use('/', route_manager);
  32. app.use('/source', require('magic-window')('/source', { ignore: ['config', 'redis', 'cert.pem', 'key.pem', 'dump.rdb'] }))
  33. app.use('/log', express.static('log'));
  34. app.use('/log', serveIndex('log', {'icons': true}));
  35. app.listen(3000, function () {
  36. console.log('Now accepting connections on port 3000.');
  37. });
  38. if (production === "-p") {
  39. var prkey = fs.readFileSync('key.pem');
  40. var certi = fs.readFileSync('cert.pem');
  41. app.listen(80, function() {
  42. console.log('Now accepting connections on port 80.');
  43. });
  44. https.createServer({
  45. key: prkey,
  46. cert: certi
  47. }, app).listen(443, function() {
  48. console.log("Now accepting HTTPS connections on port 443.");
  49. });
  50. }
  51. process.on('SIGINT', function() {
  52. console.log( "\nRecieved Ctrl-C, shutting down." );
  53. process.exit(0);
  54. })