Merge branch 'staging' of github.com:FreeCodeCamp/freecodecamp into staging
This commit is contained in:
@ -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();
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user