2019-05-27 10:33:22 -07:00
|
|
|
#!/usr/bin/env node
|
|
|
|
|
var debug = require('debug')('explorer');
|
|
|
|
|
var settings = require('../lib/settings');
|
|
|
|
|
var db = require('../lib/database');
|
|
|
|
|
var app = require('../app');
|
|
|
|
|
|
2021-01-22 15:04:32 -07:00
|
|
|
app.set('port', process.env.PORT || settings.webserver.port);
|
2019-05-27 10:33:22 -07:00
|
|
|
|
2022-06-13 19:37:48 -06:00
|
|
|
var dbString = 'mongodb://' + encodeURIComponent(settings.dbsettings.user);
|
|
|
|
|
dbString = dbString + ':' + encodeURIComponent(settings.dbsettings.password);
|
2019-05-27 10:33:22 -07:00
|
|
|
dbString = dbString + '@' + settings.dbsettings.address;
|
|
|
|
|
dbString = dbString + ':' + settings.dbsettings.port;
|
|
|
|
|
dbString = dbString + '/' + settings.dbsettings.database;
|
|
|
|
|
|
|
|
|
|
db.connect(dbString, function() {
|
2022-04-30 20:53:10 -06:00
|
|
|
// initialize the database
|
|
|
|
|
db.initialize_data_startup(function() {
|
|
|
|
|
var server = app.listen(app.get('port'), '::', function() {
|
|
|
|
|
debug('Express server listening on port ' + server.address().port);
|
2021-01-22 15:04:32 -07:00
|
|
|
});
|
2021-04-17 13:26:05 -06:00
|
|
|
|
2022-04-30 20:53:10 -06:00
|
|
|
process.on('SIGINT', () => {
|
|
|
|
|
server.close(() => {
|
|
|
|
|
var mongoose = require('mongoose');
|
2021-04-17 13:26:05 -06:00
|
|
|
|
2023-05-07 20:55:29 -06:00
|
|
|
mongoose.connection.close(false).then(() => {
|
2022-04-30 20:53:10 -06:00
|
|
|
// close the main process now that all http and database connections have closed
|
|
|
|
|
process.exit(0);
|
2023-05-07 20:55:29 -06:00
|
|
|
}).catch((err) => {
|
|
|
|
|
console.log(err);
|
|
|
|
|
process.exit(1);
|
2022-04-30 20:53:10 -06:00
|
|
|
});
|
2021-04-17 13:26:05 -06:00
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
});
|
2021-01-22 15:04:32 -07:00
|
|
|
});
|