|
|
@ -57,10 +57,6 @@ module.loadModels = async (dtp) => { |
|
|
|
module.log.error('model name collision', { name: model.modelName }); |
|
|
|
process.exit(-1); |
|
|
|
} |
|
|
|
module.log.info('data model loaded', { |
|
|
|
name: model.modelName, |
|
|
|
collection: model.collection.collectionName, |
|
|
|
}); |
|
|
|
module.models[model.modelName] = model; |
|
|
|
}); |
|
|
|
}; |
|
|
@ -109,12 +105,10 @@ module.loadServices = async (dtp) => { |
|
|
|
const scripts = glob.sync(path.join(dtp.config.root, 'app', 'services', '*.js')); |
|
|
|
const inits = [ ]; |
|
|
|
await SiteAsync.each(scripts, async (script) => { |
|
|
|
module.log.info('service', { script }); |
|
|
|
const service = await require(script); |
|
|
|
module.services[service.name] = service.create(dtp); |
|
|
|
module.services[service.name].__dtp_service_name = service.name; |
|
|
|
inits.push(module.services[service.name]); |
|
|
|
module.log.info('service loaded', { name: service.name }); |
|
|
|
}); |
|
|
|
await SiteAsync.each(inits, async (service) => { |
|
|
|
await service.start(); |
|
|
@ -124,13 +118,43 @@ module.loadServices = async (dtp) => { |
|
|
|
module.loadControllers = async (dtp) => { |
|
|
|
const scripts = glob.sync(path.join(dtp.config.root, 'app', 'controllers', '*.js')); |
|
|
|
const inits = [ ]; |
|
|
|
|
|
|
|
dtp.controllers = { }; |
|
|
|
|
|
|
|
await SiteAsync.each(scripts, async (script) => { |
|
|
|
module.log.info('controller', { script }); |
|
|
|
const controller = await require(script)(dtp); |
|
|
|
const controller = await require(script); |
|
|
|
controller.instance = await controller.create(dtp); |
|
|
|
|
|
|
|
dtp.controllers[controller.name] = controller; |
|
|
|
|
|
|
|
inits.push(controller); |
|
|
|
}); |
|
|
|
|
|
|
|
await SiteAsync.each(inits, async (controller) => { |
|
|
|
await controller.start(); |
|
|
|
if (controller.isHome) { |
|
|
|
return; // must run last
|
|
|
|
} |
|
|
|
await controller.instance.start(); |
|
|
|
}); |
|
|
|
|
|
|
|
/* |
|
|
|
* Start the Home controller |
|
|
|
*/ |
|
|
|
await dtp.controllers.home.instance.start(); |
|
|
|
|
|
|
|
/* |
|
|
|
* Default error handler |
|
|
|
*/ |
|
|
|
module.log.info('registering ExpressJS error handler'); |
|
|
|
dtp.app.use((error, req, res, next) => { // jshint ignore:line
|
|
|
|
res.locals.errorCode = error.statusCode || error.status || error.code || 500; |
|
|
|
module.log.error('ExpressJS error', { url: req.url, error }); |
|
|
|
res.status(res.locals.errorCode).render('error', { |
|
|
|
message: error.message, |
|
|
|
error, |
|
|
|
errorCode: res.locals.errorCode, |
|
|
|
}); |
|
|
|
// return next(error);
|
|
|
|
}); |
|
|
|
}; |
|
|
|
|
|
|
@ -315,16 +339,6 @@ module.exports.startWebServer = async (dtp) => { |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
module.app.use(async (err, req, res, next) => { // jshint ignore:line
|
|
|
|
var errorCode = err.status || err.statusCode || err.code || 500; |
|
|
|
module.log.error('HTTP error', { error: err }); |
|
|
|
res.status(errorCode).render('error', { |
|
|
|
message: err.message, |
|
|
|
error: err, |
|
|
|
title: 'error' |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
module.log.info('creating HTTP server'); |
|
|
|
module.http = require('http').createServer(module.app); |
|
|
|
|
|
|
|