コード例 #1
0
ファイル: index.js プロジェクト: syedshahwar/SECAB-WebServies
(function () {
  "use strict";

  var stack = require('./lib/stack')
    , gcf = require('express-chromeframe')
    , addSendJson = require('./lib/jason-res-json')
    , corsSession = require('./lib/connect-cors-session')
    , nowww = require('nowww')
    , queryparser = require('connect-queryparser')
    , xcors = require('connect-xcors')
    , cors
    , session
    , connect
    ;


  connect = stack.create(
      addSendJson()
  );

  cors = xcors();
  session = corsSession();
  connect.addMiddleware(
      nowww()
    , queryparser()
    , cors
    , session
    , gcf()
  );

  // TODO push into middleware layer
  cors.config.headers = cors.config.headers.concat(session.headers.slice());

  module.exports = connect;
}());
コード例 #2
0
ファイル: steve.js プロジェクト: YSATools/wardmenu
(function () {
  "use strict";

  require('http-json')(require('http'));

  var connect = require('connect')
    , fs = require('fs')
    , path = require('path')
    , cookielessSession = require('connect-cookieless-session')
    , pathname = require('connect-pathname')
    , gcf = require('express-chromeframe')
    , nowww = require('nowww')
    , xcors = require('connect-xcors')
    , cors = xcors()
    , session = cookielessSession()
    , app = connect()
    , version = JSON.parse(
          fs.readFileSync(
              path.join(__dirname, '..', 'package.json')
            , 'utf8'
          )
      ).version
    , semver
    ;

  function parseSemver(version) {
    // semver, major, minor, patch
    // https://github.com/mojombo/semver/issues/32
    // https://github.com/isaacs/node-semver/issues/10
    // optional v
    var m = /^\s*(v)?([0-9]+)(\.([0-9]+))(\.([0-9]+))(([\-+])([a-zA-Z0-9\.]+))?\s*$/.exec(version) || []
      , ver = {
            semver: m[0] || version
          , major: m[2]
          , minor: m[4]
          , patch: m[6]
          , revision: m[7]
        }
      ;

    if (!/^v/.test(ver.semver)) {
      ver.semver = 'v' + ver.semver;
    }

    if ('+' === m[8]) {
      ver.build = m[9];
    }

    if ('-' === m[8]) {
      ver.release = m[9];
    }

    return ver;
  }

  function getVersion(res, req, next) {
    res.json(semver);
  }

  semver = parseSemver(version);

  connect.router = require('connect_router');
  connect.corsPolicy = cors.config;

  cors.config.headers = cors.config.headers.concat(session.headers.slice());

  app
    .use(nowww())
    .use(gcf())
    .use(pathname())
    .use(connect.query())
    .use(connect.json())
    .use(connect.urlencoded())
    .use(cors)
    .use(session)
    .use(connect.static(__dirname + '/../static'))
    .use(connect.static(__dirname + '/../public'))
    .use(connect.static(__dirname + '/../var/public'))
    .use('/version', getVersion)
    .use(connect.favicon())
    ;

  module.exports = app;
}());
コード例 #3
0
ファイル: app.js プロジェクト: carlosvarela/aws-intro
var app = express();

// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');

// use and abuse
app.use(favicon());
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded());
app.use(cookieParser());
app.use(require('stylus').middleware(path.join(__dirname, 'public')));
app.use(express.static(path.join(__dirname, 'public')));
app.use(app.router);
app.use(chromeframe());

// define routes
app.get('/', routes.index);
app.get('/events', events.list);
app.get('/events/:id', events.get);
app.get('/review', review.index);

// catch 404 and forwarding to error handler
app.use(function(req, res, next) {
    var err = new Error('Not Found');
    err.status = 404;
    next(err);
});

// error handlers
コード例 #4
0
ファイル: app.js プロジェクト: kpuputti/masalanpelto
app.configure(function () {

    var APP_ENV = app.get('env');
    var IS_PRODUCTION = APP_ENV === 'production';
    var USE_VIEW_CACHE = IS_PRODUCTION ? 'memory' : false;
    var PATH_TO_VIEWS = path.join(__dirname, '..', '/views');
    var LOG_MODE = IS_PRODUCTION ? 'default' : 'dev';
    var COOKIE_SECRET = process.env.COOKIE_SECRET || 'cookie secret';
    var SESSION_SECRET = process.env.SESSION_SECRET || 'session secret';
    var PATH_TO_PUBLIC = path.join(__dirname, '..', 'public');
    var PATH_TO_FAVICON = path.join(PATH_TO_PUBLIC, 'favicon.ico');
    var dayInMilliseconds = 24 * 60 * 60 * 1000;
    var weekInMilliseconds = dayInMilliseconds * 7;
    var GOOGLE_ANALYTICS_TRACKING_ID = process.env.GOOGLE_ANALYTICS_TRACKING_ID || null;

    log.info('configure app in env: ' + APP_ENV);

    // Swig templating config

    app.engine('html', swig.renderFile);
    app.set('view engine', 'html');
    app.set('views', PATH_TO_VIEWS);
    app.set('view cache', USE_VIEW_CACHE);
    swig.setDefaults({
        locals: {
            siteTitle: 'Masalanpelto',
            GOOGLE_ANALYTICS_TRACKING_ID: GOOGLE_ANALYTICS_TRACKING_ID
        },
        cache: USE_VIEW_CACHE
    });
    swig.setFilter('filesize', filters.filesize);

    // Other Express config

    app.set('case sensitive routing', true);
    app.set('strict routing', true);

    // Middleware

    app.use(express.logger(LOG_MODE));
    app.use(express.compress());
    app.use(express.favicon(PATH_TO_FAVICON, {
        maxAge: weekInMilliseconds
    }));
    app.use(chromeframe());
    app.use(express.bodyParser());
    app.use(express.cookieParser(COOKIE_SECRET));
    app.use(express.cookieSession({
        secret: SESSION_SECRET
    }));
    app.use(express.csrf());

    // Expose session data to the views
    app.use(function (req, res, next) {
        res.locals.session = req.session;
        res.locals.csrfToken = req.csrfToken();
        next();
    });

    // Generate navigation links for the response
    app.use(function (req, res, next) {
        res.locals.nav = nav.getNav(req.path, req.session);
        next();
    });

    app.use(function (req, res, next) {
        res.locals.messages = req.session.messages || [];
        req.session.messages = [];
        next();
    });

    app.use(express.static(PATH_TO_PUBLIC, {
        maxAge: dayInMilliseconds
    }));

    // Add extra error reporting for non-production envs
    if (!IS_PRODUCTION) {
        app.use(express.errorHandler());
    }
});