How to make ExpressJS and Services Layer working together?
Here is my app.js
/*jslint node: true */
'use strict';
var express = require('express');
var bodyParser = require('body-parser');
var router = require('./route');
var app = express();
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
app.use('/', router);
app.set('port', process.env.PORT || 3000);
app.listen(app.get('port'));
console.log('Running server on port ' + app.get('port') + ' .');
Here is the route.js which is my router, but also I construct the services layer here as well.
/*jslint node: true */
'use strict';
var express = require('express');
var config = require('./lib/config');
var log4js = require('log4js');
var HashMap = require('hashmap').HashMap;
var emailscan = require('./lib/emailservice');
var account_controller = require('./controller/account.controller.js');
var job_controller = require('./controller/job.controller.js');
var attachment_controller = require('./controller/attachment.controller.js');
//hold all the services
var services = new HashMap();
//set up config
config.load(__dirname + '/config', 'test-conf');
services.set('config', config);
//set up logger
log4js.configure(__dirname + '/config/log/' + config.data.logConfigFileName, config.data.log4js);
var logger = log4js.getLogger('root');
services.set('logger', logger);
//set up emailscan
emailservice.services = services;
emailservice.init(services);
services.set('emailscan', emailscan);
//set up controllers
account_controller.init(services);
job_controller.init(services);
attachment_controller.init(services);