Merge branch 'staging' of github.com:FreeCodeCamp/freecodecamp into staging

This commit is contained in:
Quincy Larson
2015-06-21 21:01:26 -07:00

View File

@ -1,7 +1,6 @@
require('dotenv').load();
var pmx = require('pmx');
pmx.init();
// handle uncaught exceptions. Forever will restart process on shutdown
var R = require('ramda'),
assign = require('lodash').assign,
@ -188,6 +187,8 @@ app.use(
})
);
// track when connecting to db starts
var startTime = Date.now();
boot(app, {
appRootDir: __dirname,
dev: process.env.NODE_ENV
@ -301,20 +302,46 @@ if (true) { // eslint-disable-line
});
}
/**
* Start Express server.
*/
module.exports = app;
app.listen(app.get('port'), function() {
console.log(
'FreeCodeCamp server listening on port %d in %s mode',
app.get('port'),
app.get('env')
);
});
app.start = function () {
app.listen(app.get('port'), function() {
console.log(
'FreeCodeCamp server listening on port %d in %s mode',
app.get('port'),
app.get('env')
);
});
};
// start the server if `$ node server.js`
if (require.main === module) {
if (process.env.NODE_ENV === 'production') {
var timeoutHandler;
console.log('waiting for db to connect');
var onConnect = function() {
console.log('db connected in %s ms', Date.now() - startTime);
if (timeoutHandler) {
clearTimeout(timeoutHandler);
}
app.start();
};
module.exports = app;
var timeoutHandler = setTimeout(function() {
var message =
'db did not after ' +
(Date.now() - startTime) +
' ms connect crashing hard';
console.log(message);
// purposely shutdown server
// pm2 should restart this in production
throw new Error(message);
}, 5000);
app.dataSources.db.on('connected', onConnect);
} else {
app.start();
}
}