Example #1
0
    serviceLoader.on('initialized', function(){
        app.use(expressWinston.logger({winstonInstance: serviceLoader.get('Logs').access}));
        app.use(expressWinston.errorLogger({winstonInstance: serviceLoader.get('Logs').error}));
        app.listen(config.get('server.port'));

        logger.log('info', "HTTP Server runing on port " + config.get('server.port'));
    });
 .then(function () {
     app.use(mobile);
     app.use(logCollector.errorLogger({
         winstonInstance: logger
     }));
     return app;
 });
Example #3
0
    exports.start = function(port, callback) {

        var app = express();

        app.use(express.limit('4mb'));
        app.use(express.json());
        app.use(express.urlencoded());
        app.use(express.cookieParser());
        app.use(express.cookieSession({
                    secret: config.get("server_sessionKey")
                }));

        app.set('views', __dirname + '/views');
        app.set('view engine', 'jade');


        app.use(connectFlash());
        auth.addToExpress(port, app);

        require("./posts.js")(app);
        require("./downloadAllPosts.js")(app);
        require("./feeds.js")(app);
        require("./trimPosts.js")(app);

        app.get("/", auth.requireLogin, handleHomepageRequest);
        app.get("/status", handleStatusRequest);
        app.get("/about", handleAboutRequest);

        app.get("/client/main-built.js", function(req, res) {
            var mainBuilt = path.resolve(__dirname + '../../../temp/main-built.js');
            fs.exists(mainBuilt, function(exists) {
                if (exists) {
                    res.sendfile(mainBuilt);
                } else {
                    res.status(404).send("not found");
                }
            });
        });

        app.use("/client/runtime.js", function(req,res){
            res.status(200).sendfile(path.resolve(__dirname, "../../node_modules/jade/runtime.js"));
        });
        app.use("/client", express.static(__dirname + './../client/'));
        app.use("/client/views", express.static(__dirname + './../../temp/views'));

        var transports = [];

        transports.push(new winston.transports.Console({json: true}));

        app.use(expressWinston.errorLogger({
                    transports: transports
                }));

        app.use(errorHandler);

        server = http.createServer(app);
        server.listen(port, callback);
    };
Example #4
0
exports.errorLogger = function(app) {
  app.use(expressWinston.errorLogger({
    // winstonInstance: winston,
    transports: [
      new winston.transports.SendGridLogger({
        to: '*****@*****.**',
        subject: 'Columby worker error report: Uncaught exception handler'
      })
    ]
  }));
};
Example #5
0
File: ohm.js Project: ohmlabs/ohm
function Ohm(config) {
  Object.keys(config).map((key, index) => {
    nconf.set(key, config[key]);
  });

  if (nconf.get('STATIC_PATH') === undefined) {
    nconf.set('STATIC_PATH', PATH.join(__dirname, nconf.get('STATIC_DIR')));
  }

  winston.info('Server starting on port ' + config.port + ' in ' + app.settings.env + ' mode');
  app.config = config;
  configManager.handle(nconf, app);

  if (config.SESSION_KEY) {
    parseManager.handle(nconf, app);
    sessionManager.handle(nconf, app, io);
  }

  if (config.GHOST_CONFIG_PATH) {
    ghostManager.handle(nconf, app);
  }

  app.use(expressWinston.logger({
    transports: [
      new(winston.transports.File)({
        filename: 'logs/ohm.debug.log',
        level: 'debug',
      }),
    ]
  }));

  if (config.SOCKETS) {
    require(config.SOCKETS)(io, app);
  }
  require(config.ROUTES)(app);

  app.use(expressWinston.errorLogger({
    transports: [
      new(winston.transports.File)({

        filename: 'logs/ohm.error.log'
      }),
    ]
  }));

  server.listen(config.port);
  return server;
}
Example #6
0
exports.error = (function () {
  const transports = [
    new (winston.transports.Console)({
      colorize: true,
      timestamp: true,
    }),
  ];

  addServerTransport(transports);

  return expressWinston.errorLogger({
    transports: transports,
    baseMeta: {
      server: {
        name: pkg.name,
        version: pkg.version,
      }
    }
  });
})();
Example #7
0
module.exports = function () {
  var colorize = process.env.NODE_ENV !== 'production';

  // Logger to capture all requests and output them to the console.
  // [START requests]
  var requestLogger = expressWinston.logger({
    transports: [
      new winston.transports.Console({
        json: false,
        colorize: colorize
      })
    ],
    expressFormat: true,
    meta: false
  });
  // [END requests]

  // Logger to capture any top-level errors and output json diagnostic info.
  // [START errors]
  var errorLogger = expressWinston.errorLogger({
    transports: [
      new winston.transports.Console({
        json: true,
        colorize: colorize
      })
    ]
  });
  // [END errors]

  return {
    requestLogger: requestLogger,
    errorLogger: errorLogger,
    error: winston.error,
    warn: winston.warn,
    info: winston.info,
    log: winston.log,
    verbose: winston.verbose,
    debug: winston.debug,
    silly: winston.silly
  };
};
Example #8
0
  app.configure(function () {
    // bodyParser should be above methodOverride
    app.use(express.bodyParser());
    app.use(express.methodOverride());

    // cookieParser should be above session
    app.use(express.cookieParser());
    app.use(express.session({
      secret: pkg.name,
      store: new mongoStore({
        url: mongoConfig.getDbUrl(),
        collection : 'sessions'
      })
    }));

    // Passport session
    app.use(passport.initialize());
    app.use(passport.session());

    // routes should be at the last
    app.use(app.router);

    // express-winston errorLogger makes sense AFTER the router.
    app.use(expressWinston.errorLogger({
      transports: [
        new winston.transports.Console({
          json: true,
          colorize: true
        })
      ]
    }));

    app.use(function (req, res, next) {
      res.status(404).render('404', { url: req.originalUrl });
    });
  });
Example #9
0
	app.configure(function () {
		app.disable('etag');
		app.set('ipaddress', ipaddress)
		app.set('port', port);
		app.set('config', config);
		app.set('views', path.join(__dirname, 'views'));
		app.set('view engine', 'jade');
		app.set('models', require('./models'));
		app.set('checkIsMobile', isCallerMobile);
		app.set('database', app.get('models').sequelize);
		if(!process.env.SINGULAR) {
			app.set('workerId', cluster.worker.id);
		}

		app.use(express.favicon());
		app.use(express.compress());
		app.use(express.bodyParser());
		app.use(express.static(config.dataDir, 'data', { maxAge: '2h' }));
		app.use(express.static(path.join(__dirname, 'public'), { maxAge: '2h' }));
		app.use(express.json());
		app.use(express.methodOverride());
		app.use(express.cookieParser());
		app.use(express.urlencoded());
		app.use(express.cookieSession({ key: 'express.sid', secret: 'M9W2J1Yq6DbfM+iQZ5ydEMt88peKFz2zq5g6ajtygP4=', maxAge: new Date(Date.now() + 3600000), secure: true }));
		app.use(passport.initialize());
		app.use(passport.session());
		app.use(expressWinston.logger({
			transports: config.loggerTransports,
			meta: false, // optional: control whether you want to log the meta data about the request (default to true)
			msg: "HTTP {{req.method}} {{req.url}}"
		}));
		app.use(app.router);
		app.use(expressWinston.errorLogger({
			transports: config.loggerTransports
		}));
	});
  extension.loadConfiguration(config, function (err) {
    if (err) return callback(err)
    // Set default to Infinity
    http.globalAgent.maxSockets = config.maxSockets || Infinity
    https.globalAgent.maxSockets = config.maxSockets || Infinity

    var app = express()

    app.use(bodyParser.json({limit: '10mb'}))

    if (config.winstonInstance) logger = config.winstonInstance

    var expressLogConfig = {
      winstonInstance: logger,
      msg: '{{res.statusCode}} HTTP {{req.method}} {{req.url}} {{res.responseTime}}ms',
      meta: false
    }

    app.use(expressWinston.logger(expressLogConfig))
    app.use(expressWinston.errorLogger(expressLogConfig))

    routes(app)
    port = config.port || 80

    server = app.listen(port, function () {
      logger.info('Express integrator-extension server listening on port: ' + port)
      return callback()
    })

    server.on('error', function (err) {
      logger.error('Express integrator-extension server error - ' + err.toString())
    })

    // Timeout should be greater than the server's/load balancer's idle timeout to avoid 504 errors.
    server.timeout = config.timeout || 315000
  })
      json: false,
      colorize: colorize,
    }),
  ],
  expressFormat: true,
  meta: false,
});
// [END requests]

// Logger to capture any top-level errors and output json diagnostic info.
// [START errors]
const errorLogger = expressWinston.errorLogger({
  transports: [
    new StackdriverTransport(),
    new winston.transports.Console({
      json: true,
      colorize: colorize,
    }),
  ],
});
// [END errors]

module.exports = {
  requestLogger: requestLogger,
  errorLogger: errorLogger,
  error: winston.error,
  warn: winston.warn,
  info: winston.info,
  log: winston.log,
  verbose: winston.verbose,
  debug: winston.debug,
Example #12
0
app.set("view engine", "jade");

app.use(express.urlencoded());
app.use(require("connect-multiparty")({ keepExtensions: true, uploadDir: config.tempDir || __dirname }))
app.use(express.json());
app.use(express.urlencoded());
app.use(express.methodOverride());
app.use(express.cookieParser(config.cookieSecret || "changeme"));
app.use(express.session());
app.use(passport.initialize());
app.use(passport.session());
app.use(flash());
app.use(app.router);
app.use(expressWinston.errorLogger({
    transports: [
        new winston.transports.File({ filename: config.exceptionlogfile })
    ]
}));
app.use(express.static(path.join(__dirname, "static")));

// setting up protected static service
var templateStatic = express.static(path.join(__dirname, "template"));
var projectStatic = express.static(config.projectsDir || path.join(__dirname, "projects"));
app.get(/^\/api\/p\/([^\/]+)\/(.+)/, global.authTokenOrUser, global.authProject, function (req, res, next) {
    if (req.params.length>=0 && req.params[0]) {
        var projectName = req.params[0];
        var reqPath = req.params[1];
        var projectPath = path.join(Utils.getProjectDir(projectName), reqPath);
        var templatePath = path.join(__dirname, "template", reqPath);
        if (reqPath=="application.keystore" || reqPath=="storyquest.properties") {
            res.status(404).send("Resource " + reqPath + " not found.");
Example #13
0
    cert: fs.readFileSync(certificateRealPath).toString(),
  };

  app.port = app.config.port || 443;
  app.server = https.createServer(options, app);
  app.server.listen(app.port, function() {
    logger.info('HTTPS server listening on port ' + app.port);
    require('./lib/sockets');
  });
};

require('./routes');

// load after the routes
if (process.env.NODE_ENV === 'development') {
  // only use in development
  app.use(errorhandler());
}

// express-winston errorLogger makes sense AFTER the router.
app.use(expressWinston.errorLogger({
  transports: myLogTransports,
}));

function handleError(err) {
  logger.error('handleError : ', err, err.stack);
  process.exit(1);
}

process.on('uncaughtException', handleError);
Example #14
0
  // All unhandled routes are served the static index.html file
  app.get('*', (req, res) => {
    // If in production or local mode, and the page is a static path, send the static version
    if (
      (ENV === 'production' || ENV === 'local') &&
      staticPageCache[req.originalUrl]
    ) {
      res.send(staticPageCache[req.originalUrl]);
    } else {
      res.send(publicIndexFile);
    }
  });
}

// Error logging
app.use(expressWinston.errorLogger({ transports: winstonTransports }));

// Pass the Express app to the user's custom error handler function.
const errorHandlerPath = './server/errorHandler.js';
if (utils.fileExists(errorHandlerPath)) {
  const errorHandler = require(path.join(cwd, errorHandlerPath));

  if (typeof errorHandler === 'function') {
    app.use(errorHandler);
  } else {
    throw new Error('Custom error handler file must export a single function.');
  }
}

// Start the Express server
const server = app.listen(EXPRESS_PORT, () => {
Example #15
0
module.exports = function (app, passport) {

  params.extend(app);

  app.set('port', config.get('port'));
  app.set('views', [config.get('root'), 'www', 'views'].join('/'));
  app.set('view engine', 'ejs');

  // HTML using ejs is used with server auth protected angularjs templates
  // Eg. Only logged in uses can load the create template
  app.engine('html', require('ejs').renderFile);

  app.disable('x-powered-by');

  // Enable response compression (utilize bandwidth)
  app.use(express.compress({
    filter: function (req, res) {
      return (/json|text|javascript|css/).test(res.getHeader('Content-Type'));
    },
    // Levels are specified in a range of 0 to 9, where-as 0 is
    // no compression and 9 is best compression, but slowest
    level: 9
  }));

  app.use(express.json());
  app.use(express.urlencoded());

  app.use(express.methodOverride());

  app.use(express.cookieParser());

  // Session storage
  app.use(express.session({
    key: config.get('cookieKey'),
    secret: config.get('cookieSecret'),
    cookie: {
      domain: config.get('app').cookieDomain,
      expires: new Date(config.get('cookieExpire'))
    },
    store: new RedisStore({
      secret: config.get('redisSessionSecret'),
      client: redisClient
    })
  }));

  // connect-flash required by passportjs for flash messages
  app.use(flash());

  // use passport session
  app.use(passport.initialize());
  app.use(passport.session());

  app.use(express.csrf());

  // Angular’s $http library reads the token from the XSRF-TOKEN cookie.
  // We therefore have to set this cookie and send it to the client.
  // Setting a cookie in Express is done via the res.cookie('name', 'value') function.
  // The name is obviously XSRF-TOKEN. The value is read from the user’s session.
  // The key req.session._csrf is automatically generated by the csrf middleware.
  app.use(function (req, res, next) {
    res.cookie('XSRF-TOKEN', req.csrfToken());
    next();
  });

  // Logging

  // HTTP log
  // express-winston logger BEFORE the router.
  app.use(expressWinston.logger({
    transports: [
      new (winston.transports.File)({
        filename: config.get('root') + '/log/' + env + '_access.log',
        maxsize: config.get('logMaxFileSize'),
        maxfiles: config.get('logMaxFiles')
      })
    ]
  }));

  app.use(app.router);

  // static files are handled by NGINX in production
  app.use(express.static([config.get('root'), 'app'].join('/')));

  // Error log
  // express-winston errorLogger AFTER the router.
  app.use(expressWinston.errorLogger({
    transports: [
      new (winston.transports.File)({
        filename: config.get('root') + '/log/' + env + '_error.log',
        maxsize: config.get('logMaxFileSize'),
        maxfiles: config.get('logMaxFiles')
      })
    ]
  }));

  // Server error handling
  app.use(function (err, req, res, next) {

    logger.error(err.stack);

    // If 403 error send JSON response
    if (err.status === +403) {

      logger.error('403: ' + req.originalUrl);
      res.jsonp(403, {error: 'Forbidden'});
    }
    else {

      // 500 error repsonse

      logger.error('500: ' + req.originalUrl);

      // Error message to display
      var errorMsg;

      if ('production' === app.get('env')) {
        errorMsg = 'We\'re very sorry, but something went wrong. We\'ve been notified about this issue and we\'ll follow up on this right away.';
      }
      else {
        errorMsg = err.stack;
      }

      // If the request is from AngulaJS respond with JSON else full HTML page
      if (req.header('X-XSRF-TOKEN')) {
        res.send(500, { error: errorMsg });
      }
      else {
        res.status(500).render('500.html', {
          name: config.get('app').name,
          error: errorMsg
        });
      }

      // Fix JSHint's warning of next not being used by defining it
      next = next;

      return;
    }

  });

  // Assume 404 since no middleware responded
  app.use(function (req, res) {

    logger.error('404: ' + req.originalUrl);

    // AngularJS handle 404 page or 301 permanent redirect (better for SEO?)

    // 404 response
    // res.redirect('/#' + req.originalUrl);

    // 301 response
    res.writeHead(301, {'Location': '/#!' + req.originalUrl});
    res.end();

  });

};
Example #16
0
        'message': 'Ok',
        'data': doc_id
      };
      res.send(success);
    }
  });
});

// this needs to go after any calls to verbs
app.use(express_winston.errorLogger({
  transports: [
    new winston.transports.Console({
      json: true,
        colorize: true
    }),
    new winston.transports.File({
      filename: config.logger.path,
      json: true,
      maxsize: 10485760,
      maxFiles: 5
    })
  ]
}));

if (config.app.listen_http) {
  http.createServer(app).listen(config.app.port);
}

if (config.app.listen_https) {
  https.createServer(config.ssl, app).listen(config.ssl.port);
}
Example #17
0
var winston = require('winston');
var expressWinston = require('express-winston');

var transports = [new (winston.transports.Console)({json: true})];
module.exports = {
    access: expressWinston.logger({transports: transports}),
    error: expressWinston.errorLogger({transports: transports})
};
Example #18
0
      colorize: true
    }),
    new winston.transports.File({
      filename: 'logs/success.log'
    })
  ]
}));
// 路由
routes(app);
// 错误请求的日志
app.use(expressWinston.errorLogger({
  transports: [
    new winston.transports.Console({
      json: true,
      colorize: true
    }),
    new winston.transports.File({
      filename: 'logs/error.log'
    })
  ]
}));

// error page
app.use(function (err, req, res, next) {
  res.render('error', {
    error: err
  });
});

if (module.parent) {
  module.exports = app;
Example #19
0
var expressWinston = require('express-winston');
var winston = require('winston'); // for transports.Console
var mkdirp = require('mkdirp');
var path = require('path');

var logPath = 'log/ws.log';
mkdirp.sync(path.dirname(logPath));

var logger = {
    consoleLogger: expressWinston.logger({
        transports: [
            new winston.transports.Console({
                json: true,
                colorize: true
            }),
            new winston.transports.File({ filename: logPath })
        ]
    }),

    errorLogger: expressWinston.errorLogger({
        transports: [
            new winston.transports.Console({
                json: true,
                colorize: true
            }),
            new winston.transports.File({ filename: logPath })
        ]
    })
};

module.exports = logger;
Example #20
0
// 	let date = new Date();
//     let M = (date.getMonth() + 1) >= 10 ? date.getMonth() + 1 : `0${date.getMonth() + 1}`;
//     let d = date.getDate() >= 10 ? date.getDate() : `0${date.getDate()}` ;
// 	overdueTask()
// 	.then(resolve => {
// 		console.log(`${date.getFullYear()}-${M}-${d} 00:00:00`);
// 	})
// }, 60 * 60 *24);

// 生成错误日志
app.use(expressWinston.errorLogger({
	transports: [
		// new (winston.transports.Console)({
		// 	json: true,
		// 	colorize: true
		// }),
		new winston.transports.File({
			filename: 'logs/error.log'
		})
	]
}))

app.listen(config.port, () => {
	console.log(`listen at http://localhost:${config.port}`);
});

const http = require('http').Server(express());
const io = require('socket.io')(http);


http.listen(config.ioPort, () => {
//
// config
//      client
//          views - directory where jade views are there, only required view is 'index'
//          routes - react router routes
//          publicPath
//          resourcesPath
//      api
//          services - service instances, that also implement registry methods
//
export default function (app, config) {
    const logger = buildLogger(config.logDirectory || process.cwd());

    app.use(compression());

    // log body too
    ExpressWinston.requestWhitelist.push('params');
    ExpressWinston.requestWhitelist.push('cookies');
    ExpressWinston.requestWhitelist.push('body');
    
    ExpressWinston.responseWhitelist.push('_headers');

    app.use(ExpressWinston.logger({winstonInstance: logger, statusLevels: true}));

    if (config.client) {
        // view engine setup
        const viewsDirectory = config.client.views || path.join(__dirname, 'views');
        const layoutsDirectory = path.join(viewsDirectory, 'layouts');

        const hbsEngine = expressHandleBars.create({
            layoutsDir: layoutsDirectory,
            defaultLayout: 'default'
        });

        app.set('views', viewsDirectory);
        app.engine('handlebars', hbsEngine.engine);
        app.set('view engine', 'handlebars');

        if (config.client.publicPath) {
            app.use(config.client.multiInstance ? '/:instanceName' : '/', express.static(config.client.publicPath, {index: false, maxAge: NinetyDays}));
        }

        if (config.client.resourcesPath) {
            app.use(config.client.multiInstance ? '/:instanceName/resources' : '/resources', express.static(config.client.resourcesPath, {index: false, maxAge: NinetyDays}));
        }
    }

    // For API and dynamic resources
    app.use((req, res, next) => {
        res.header('Access-Control-Allow-Origin', '*');
        res.header('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept');
        res.header('Cache-Control', 'private, no-cache, no-store, must-revalidate');
        res.header('Expires', '-1');
        res.header('Pragma', 'no-cache');
        next();
    });

    app.use(bodyParser.json());
    app.use(bodyParser.urlencoded({extended: false}));
    app.use(cookieParser());

    //
    // APIs
    //
    if (config.api) {
        app.use(apiRequestHandler(config.api));
    }

    //
    // CLIENT APP
    //
    if (config.client) {
        // eslint-disable-next-line import/no-unresolved, import/no-extraneous-dependencies
        const clientAppRequestHandler = require('reactjs-web-boilerplate/lib/server/ClientAppRequestHandler').default;

        app.use(config.client.multiInstance ? '/:instanceName' : '/', clientAppRequestHandler(config.client.routes, config.client.multiInstance, config.client.properties, config.api));
    }

    // TODO: depending on the user agent either return REST response or page response here
    // catch 404 and forward to error handler
    app.use((req, res, next) => {
        const err = new Error('404::Not Found');
        err.status = 404;
        next(err);
    });

    app.use(ExpressWinston.errorLogger({winstonInstance: logger}));

    //
    // ERROR HANDLERS
    //

    // TODO: depending on the user agent either return REST response or page response here
    // development error handler - will print stacktrace
    if (app.get('env') === 'development') {
        app.use((err, req, res) => {
            res.status(err.status || 500);
            // res.render('error', {
            //     message: err.message,
            //     error: err
            // });
            res.send({message: err.message, status: err.status, error: err});
        });
    }

    // TODO: depending on the user agent either return REST response or page response here
    // production error handler- no stack traces leaked to user
    app.use((err, req, res) => {
        res.status(err.status || 500);
        // res.render('error', {
        //     message: err.message,
        //     error: {}
        // });
        res.send({message: err.message, status: err.status});
    });
}
Example #22
0
    res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE');
    res.header('Access-Control-Allow-Headers', 'Content-Type,Content-Length,Cache-Control,Pragma,Origin,Connection,Host,Cookie,Accept');
    res.header('Access-Control-Allow-Credentials', 'true');
    res.header('Access-Control-Expose-Headers', 'Access-Control-Allow-Origin');
  }

  next();
};

app.use(allowCrossDomain);

app.use(expressWinston.errorLogger({
  transports: [
    new winston.transports.Console({
      timestamp: true,
      colorize: true
    })
  ],
  statusLevel: true
}));

function start(port) {
  models.initData();
  routes.setup(app, handlers);
  app.listen(port || process.env.PORT || 3000);
  return app;
}

exports.start = start;
exports.app = app;
Example #23
0
var app = express();
app.use(cors());
app.use(compression());

app.use(bodyParser.json()); 
app.use(bodyParser.urlencoded({ extended: false }));
//app.use(bodyParser.json({limit: '50mb'}));
//app.use(bodyParser.urlencoded({limit: '50mb', extended: true}));

app.use(expressWinston.logger(config.logger.winston));

app.use('/', require('./controllers'));

//error handling
app.use(expressWinston.errorLogger(config.logger.winston)); 
app.use(function(err, req, res, next) {
    if(typeof err == "string") err = {message: err};
    logger.error(err);
    if(err.stack) {
        logger.error(err.stack);
        err.stack = "hidden"; //for ui
    }
    res.status(err.status || 500);
    res.json(err);
});

process.on('uncaughtException', function (err) {
    logger.error((new Date).toUTCString() + ' uncaughtException:', err.message)
    logger.error(err.stack)
});
Example #24
0
app.use(bodyParser.json());
app.use(methodOverride());
app.use(session({ secret: 'keyboard cat', resave: false, saveUninitialized: false }));

// Initialize Passport!  Also use passport.session() middleware, to support
// persistent login sessions (recommended).
app.use(passport.initialize());
app.use(passport.session());

app.use(expressWinston.logger({
  winstonInstance: log,
  level: 'info',
}));

// Routes
app.use(require('./routes/root'));
app.use('/auth', require('./routes/auth').router);
// app.use('/h/:hashid', require('./routes/hashid').router);
app.use('/:username', require('./routes/user').router);
app.use('/:username/course', require('./routes/course').createRouter);
app.use('/:username/:courseLabel', require('./routes/course').router);
app.use('/:username/:courseLabel/assignment', require('./routes/assignment').createRouter);
app.use('/:username/:courseLabel/:assignmentAbbr', require('./routes/assignment').router);

app.use(expressWinston.errorLogger({
  winstonInstance: log,
  level: 'error',
}));

app.listen(3000);
Example #25
0
app.use(expressWinston.logger(loggingOptions.requestLogger));
// favicon server
app.use(favicon(settings.baseDirectory + '/' + settings.options["favicon"]));

// assets router for static modules content
app.use('/assets', require('./lib/asset-server'));
// API router for data providers
app.use('/api', require('./lib/api-router'));

// index router with EJS preprocessor in place
app.engine('.html', require('ejs').__express);
app.get('/', require('./lib/index-server'));

// static router for frontend files
app.use(express.static(settings.frontendDirectory));

// error logger middleware
app.use(expressWinston.errorLogger(loggingOptions.errorLogger));
// custom error handler
app.use(function(err, req, res, next){
	if (err) {
		res.writeHead(500, {'Content-Type' : 'text/html'});
		res.end('<h2>500 : Internal Error</h2>');
        logger.error(err.stack);
		} else { next();
}});

// configure server port
app.listen(process.env.PORT || settings.options["port"]);

logger.debug("Server started!\n");
    // Send the index.html for other files to support HTML5Mode
    var configuration = {
        application : {
            title: settings.options["title"],
            home: settings.options["home"],
            pageNotFound : settings.options["page-not-found"],
            modules: settings.getModulesSetup()
        },
        user: {}
    };
    res.render(settings.frontendDirectory + '/index.html', {
        title: settings.options["title"],
        configuration: JSON.stringify(configuration),
        css: assetManager.cssPile.htmlTags(),
        js: assetManager.jsPile.htmlTags()
    });
});

app.use(express.static(settings.frontendDirectory));

app.use(expressWinston.errorLogger(loggingOptions.errorLogger));				// error logger middleware
app.use(function(err, req, res, next){											// custom error handlers should follow the error logger
	if (err) {
		res.writeHead(500, {'Content-Type' : 'text/html'});
		res.end('<h2>500 : Internal Error</h2>\n<pre>'+ err.stack + '</pre>')
		} else { next();
}});

app.listen(process.env.PORT || settings.options["port"]);

logger.debug("Server started!\n");
Example #27
0
          json: true,
          colorize: true
        })
      ],
      // meta: true, // optional: control whether you want to log the meta data about the request (default to true)
      // msg: "HTTP {{req.method}} {{req.url}}", // optional: customize the default logging message. E.g. "{{res.statusCode}} {{req.method}} {{res.responseTime}}ms {{req.url}}"
      expressFormat: true, // Use the default Express/morgan request formatting, with the same colors. Enabling this will override any msg and colorStatus if true. Will only output colors on transports with colorize set to true
      colorStatus: true, // Color the status code, using the Express/morgan color palette (default green, 3XX cyan, 4XX yellow, 5XX red). Will not be recognized if expressFormat is true
      ignoreRoute: function (req, res) { return false; } // optional: allows to skip some log messages based on request and/or response
 }));

// app.use('/api', user(express, require('./config/passport')(passport)));
// app.use('/api', chat(express));
// app.use(chatRoomRouter(express));
app.use(limaIndexRouter(express));
// logger for error (should be declared afoter souters middleware)
app.use(expressWinston.errorLogger({
      transports: [
        new winston.transports.Console({
          json: true,
          colorize: true
        })
      ]
 }));

require('./config/socket')(socketioServer);

server.listen(port, function() {
	console.log('Running on port ' + port);
});
Example #28
0
var app = express();

app.use(expressWinston.logger({"transports" : [loggerTransport] }));

if (commander.multer) {
  logger.info("USING multer");
  app.use(multer({"dest" : "/tmp/"}));
} else {
  logger.info("USING bodyParser");
  app.use(express.bodyParser({"keepExtensions" : true, "uploadDir" : "/tmp"}));
}
app.use(express.methodOverride());
app.use(app.router);

app.use(expressWinston.errorLogger({"transports": [ loggerTransport ]}));

app.post('/(files/)?upload', function(req, res) {
  logger.info("INSIDE UPLOAD FUNCTION");
  if (req.files.Filedata){
    fs.unlink(req.files.Filedata.path, function() {
      logger.info("REMOVING FILE %s", req.files.Filedata.path);
      res.send(200);
    });
    return;
  }
  res.send(200);
});

app.listen(8000);
    return next(error);
  } else if (!(err instanceof APIError)) {
    const apiError = new APIError(err.message, err.status, err.isPublic);
    return next(apiError);
  }
  return next(err);
});

// catch 404 and forward to error handler
app.use((req, res, next) => {
  const err = new APIError('API not found', httpStatus.NOT_FOUND);
  return next(err);
});

// log error in winston transports except when executing test suite
if (config.env !== 'test') {
  app.use(expressWinston.errorLogger({
    winstonInstance
  }));
}

// error handler, send stacktrace only during development
app.use((err, req, res, next) => // eslint-disable-line no-unused-vars
  res.status(err.status).json({
    message: err.isPublic ? err.message : httpStatus[err.status],
    stack: config.env === 'development' ? err.stack : {}
  })
);

export default app;
Example #30
0
app.configure(function() {

	winston.setLevels(winston.config.syslog.levels);
	app.set('port', process.env.PORT || 3000);
	app.set('tempDir', "./temp");
	app.use(express.logger('dev'));
	app.use(express.compress());
	app.use(express.methodOverride());

	app.use(function(req, res, next) {

		res.header('Access-Control-Allow-Origin', '*');
		res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,HEAD,OPTIONS');
		res.header('Access-Control-Allow-Headers', 'Content-Type, Authorization, X-Olaround-Debug-Mode');
		res.header('Access-Control-Expose-Headers', 'X-Olaround-Debug-Mode, X-Olaround-Request-Start-Timestamp, X-Olaround-Request-End-Timestamp, X-Olaround-Request-Time, X-Olaround-Request-Method, X-Olaround-Request-Result, X-Olaround-Request-Endpoint');

		// intercept OPTIONS method
		if ('OPTIONS' == req.method) {
			res.send(200);
		}
		else {
			next();
		}
	});

	app.use(express.json());
	app.use(express.urlencoded());

	// Load the config
	app.use(function(req, res, next) {
		req.config = config;
		next();
		winston.warning("Current Count: %d", ++counter);
	});

	orm.settings.set('connection.reconnect', true);
	orm.settings.set('connection.pool', true);

	app.use(orm.express(process.env.MYSQL_CONN_STR, models));

	// Overload the res.send() function to handle custom logic
	app.use(function(req, res, next) {

		console.log("In overload send");

		res._baseSend = res.send;
		var newSend = function(status, body) {

			res.set({
				'X-Olaround-Debug-Mode': 'Header',
				'X-Olaround-Served-With': 'node.js/uploads'
			});

			if (typeof body == "undefined") {
				res._baseSend(status);
			} else {
				res._baseSend(status, body);
			}
		}

		res.send = newSend;

		next();
	});

	uploadMiddleware = [
		express.multipart({keepExtensions: true, uploadDir: app.get('tempDir')}),

		function(req, res, next) {
			if (typeof req.files.image == "undefined") {

				winston.error("No file attached for Picture Upload");
				console.log(util.inspect(req.files, {colors: true, depth: 5}));

				ErrorHelper.sendError(req, res, 400);
				return new Error(req.files);

			} else {
				next();
			}
		}
	];

	// express-winston logger makes sense BEFORE the router.
	app.use(expressWinston.logger({
		transports: [
			new winston.transports.Console({
				json: true,
				colorize: true
			})
		]
	}));

	app.use(app.router);

	// express-winston errorLogger makes sense AFTER the router.
	app.use(expressWinston.errorLogger({
		transports: [
			new winston.transports.Console({
				json: true,
				colorize: true
			})
		]
	}));
});