Advertisement
Guest User

app.js

a guest
Aug 25th, 2016
146
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var express = require('express');
  2. var path = require('path');
  3. var favicon = require('serve-favicon');
  4. var logger = require('morgan');
  5. var cookieParser = require('cookie-parser');
  6. var bodyParser = require('body-parser');
  7. var session = require('express-session');
  8. var MongoStore = require('connect-mongo');
  9. var mongoose = require('./other/mongoose');
  10. var User = require('./models/user').User;
  11.  
  12. var routes = require('./routes/index');
  13. var users = require('./routes/users');
  14.  
  15. var app = express();
  16.  
  17. // view engine setup
  18. app.engine('ejs', require('ejs-locals'));
  19. app.set('views', path.join(__dirname, 'views'));
  20. app.set('view engine', 'ejs');
  21.  
  22. // uncomment after placing your favicon in /public
  23. //app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')));
  24. app.use(logger('dev'));
  25. app.use(bodyParser.json());
  26. app.use(bodyParser.urlencoded({ extended: false }));
  27. app.use(cookieParser());
  28.  
  29. // Use the session middleware
  30. app.use(session({ secret: 'keyboard cat', cookie: { maxAge: 60000 }}));
  31.  
  32. // Access the session as req.session
  33. app.get('/', function(req, res, next) {
  34.   var sess = req.session
  35.   if (sess.views) {
  36.     sess.views++
  37.     res.setHeader('Content-Type', 'text/html')
  38.     res.write('<p>views: ' + sess.views + '</p>')
  39.     res.write('<p>expires in: ' + (sess.cookie.maxAge / 1000) + 's</p>')
  40.     res.end()
  41.   } else {
  42.     sess.views = 1
  43.     res.end('welcome to the session demo. refresh!')
  44.   }
  45. });
  46.  
  47. app.use(require('node-sass-middleware')({
  48.   src: path.join(__dirname, 'public'),
  49.   dest: path.join(__dirname, 'public'),
  50.   indentedSyntax: true,
  51.   sourceMap: true
  52. }));
  53. app.use(express.static(path.join(__dirname, 'public')));
  54.  
  55. app.use('/', routes);
  56. app.use('/users', users);
  57.  
  58. // catch 404 and forward to error handler
  59. app.use(function(req, res, next) {
  60.   var err = new Error('Not Found');
  61.   err.status = 404;
  62.   next(err);
  63. });
  64.  
  65. // error handlers
  66.  
  67. // development error handler
  68. // will print stacktrace
  69. if (app.get('env') === 'development') {
  70.   app.use(function(err, req, res, next) {
  71.     res.status(err.status || 500);
  72.     res.render('error', {
  73.       message: err.message,
  74.       error: err
  75.     });
  76.   });
  77. }
  78.  
  79. // production error handler
  80. // no stacktraces leaked to user
  81. app.use(function(err, req, res, next) {
  82.   res.status(err.status || 500);
  83.   res.render('error', {
  84.     message: err.message,
  85.     error: {}
  86.   });
  87. });
  88.  
  89. app.listen(3000, function () {
  90.   console.log('App: Server listening on port 3000');
  91. });
  92.  
  93. module.exports = app;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement