A simple file sharing site with an easy to use API and online panel.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

75 lines
1.9KB

  1. var express = require('express');
  2. var bodyParser = require('body-parser');
  3. var methodOverride = require('method-override');
  4. var mongoose = require('mongoose');
  5. var morgan = require('morgan');
  6. var passport = require('passport');
  7. var cookieParser = require('cookie-parser');
  8. var session = require('express-session');
  9. var sanitizer = require('express-sanitizer');
  10. var helmet = require('helmet');
  11. var app = express();
  12. var config = require('config');
  13. if(config.util.getEnv('NODE_ENV') !== 'test') {
  14. app.use(morgan('combined'));
  15. }
  16. mongoose.Promise = global.Promise;
  17. mongoose.connect(config.dbHost, {useMongoClient: true});
  18. var db = mongoose.connection;
  19. db.on('error', function(err) {
  20. if (err) console.log('MongoDB Connection Error: ', err);
  21. });
  22. var MongoStore = require('connect-mongo')(session);
  23. var mongoStore = new MongoStore({
  24. url: config.dbHost
  25. });
  26. app.use(helmet());
  27. app.set('trust proxy', 1);
  28. app.use(session({
  29. secret: 'secret',
  30. name: 'session.id',
  31. resave: false,
  32. saveUninitialized: false,
  33. store: mongoStore,
  34. cookie: {
  35. //secure: true,
  36. httpOnly: true,
  37. //domain: 'shimapan.rocks',
  38. maxAge: 1000 * 60 * 60
  39. }
  40. }));
  41. app.use(passport.initialize());
  42. app.use(passport.session());
  43. app.use(cookieParser());
  44. app.use(bodyParser.json());
  45. app.use(bodyParser.json({ type: 'application/*+json' }))
  46. app.use(bodyParser.urlencoded({ extended: true }));
  47. app.use(bodyParser.text());
  48. app.use(sanitizer());
  49. app.use(methodOverride('X-HTTP-Method-Override'));
  50. app.use(passport.initialize());
  51. //app.use(favicon(__dirname + '/public/img/favicon.ico'));
  52. app.use(express.static(__dirname + '/public'));
  53. require('./app/routes')(app);
  54. require('./config/passport.js');
  55. // Start app
  56. var port = process.env.PORT || 8080;
  57. var server = app.listen(port);
  58. console.log('Listening on port ', port, '...');
  59. // Expose app
  60. exports.db = db;
  61. exports.server = server;
  62. exports.app = app;