text: var createError = require('http-errors');
  var express = require('express');
  var session = require('express-session');
  var path = require('path');
  var cookieParser = require('cookie-parser');
  var logger = require('morgan');
  var handlebars = require('hbs');
  
  var indexRouter = require('./routes/index');
  var loginRouter = require('./routes/login');
  var searchRouter = require('./routes/search');
  var restaurantRouter = require('./routes/restaurant');
  
  var app = express();
  
  // Handlebars view engine setup
  app.set('views', path.join(__dirname, 'views'));
  app.set('view engine', 'hbs');
  handlebars.registerPartials('./views/partials');
  
  app.use(logger('dev'));
  app.use(express.json());
  app.use(express.urlencoded({ extended: false }));
  app.use(cookieParser());
  app.use(express.static(path.join(__dirname, 'public')));
  app.use(express.static(path.join(__dirname, 'lib')));
  
  //Use session to maintain user sessions.
  app.use(session
  ({
  	secret: 'secret',
  	resave: true,
  	saveUninitialized: true
  }));
  
  app.use('/', indexRouter);
  app.use('/login', loginRouter);
  app.use('/search', searchRouter);
  app.use('/restaurant', restaurantRouter);
  
  // catch 404 and forward to error handler
  app.use(function(req, res, next)
  {
  	next(createError(404));
  });
  
  // error handler
  app.use(function(err, req, res, next)
  {
  	// set locals, only providing error in development
  	res.locals.message = err.message;
  	res.locals.error = req.app.get('env') === 'development' ? err : {};
  
  	// render the error page
  	res.status(err.status || 500);
  	res.render('error');
  });
  
  module.exports = app;
  