2015-11-01 03:25:29 +01:00
|
|
|
/**
|
|
|
|
* Copyright (c) Mainflux
|
|
|
|
*
|
|
|
|
* Mainflux server is licensed under an Apache license, version 2.0 license.
|
|
|
|
* All rights not explicitly granted in the Apache license, version 2.0 are reserved.
|
|
|
|
* See the included LICENSE file for more details.
|
|
|
|
*/
|
2015-12-02 00:12:57 +01:00
|
|
|
var restify = require('restify');
|
|
|
|
var domain = require('domain');
|
2015-07-26 23:37:22 +02:00
|
|
|
var config = require('./config/config');
|
|
|
|
|
|
|
|
|
2015-11-01 03:25:29 +01:00
|
|
|
/**
|
2015-12-02 00:12:57 +01:00
|
|
|
* RESTIFY
|
2015-11-01 03:25:29 +01:00
|
|
|
*/
|
2015-07-06 22:32:02 +02:00
|
|
|
|
2015-12-02 00:12:57 +01:00
|
|
|
/** Create server */
|
|
|
|
var server = restify.createServer({
|
|
|
|
name: "Mainflux"
|
|
|
|
});
|
|
|
|
|
|
|
|
server.pre(restify.pre.sanitizePath());
|
|
|
|
server.use(restify.acceptParser(server.acceptable));
|
|
|
|
server.use(restify.bodyParser());
|
|
|
|
server.use(restify.queryParser());
|
|
|
|
server.use(restify.authorizationParser());
|
|
|
|
|
|
|
|
console.log('Enabling CORS');
|
|
|
|
server.use(restify.CORS());
|
|
|
|
server.use(restify.fullResponse());
|
2015-07-06 22:32:02 +02:00
|
|
|
|
2015-12-02 00:12:57 +01:00
|
|
|
//Global error handler
|
|
|
|
server.use(function(req, res, next) {
|
|
|
|
var domainHandler = domain.create();
|
2015-07-06 22:32:02 +02:00
|
|
|
|
2015-12-02 00:12:57 +01:00
|
|
|
domainHandler.on('error', function(err) {
|
|
|
|
var errMsg = 'Request: \n' + req + '\n';
|
|
|
|
errMsg += 'Response: \n' + res + '\n';
|
|
|
|
errMsg += 'Context: \n' + err;
|
|
|
|
errMsg += 'Trace: \n' + err.stack + '\n';
|
2015-07-06 22:32:02 +02:00
|
|
|
|
2015-12-02 00:12:57 +01:00
|
|
|
console.log(err.message);
|
2015-07-06 22:32:02 +02:00
|
|
|
|
2015-12-02 00:12:57 +01:00
|
|
|
//logger.error(err.message || '');
|
|
|
|
});
|
|
|
|
|
|
|
|
domainHandler.enter();
|
|
|
|
next();
|
|
|
|
});
|
2015-07-06 22:32:02 +02:00
|
|
|
|
2015-11-01 03:25:29 +01:00
|
|
|
|
|
|
|
/**
|
|
|
|
* ROUTES
|
|
|
|
*/
|
2015-12-02 00:12:57 +01:00
|
|
|
var route = require('./app/routes');
|
|
|
|
route(server);
|
2015-07-06 22:32:02 +02:00
|
|
|
|
2015-11-01 03:25:29 +01:00
|
|
|
|
|
|
|
/**
|
|
|
|
* SERVER START
|
|
|
|
*/
|
2015-12-02 00:12:57 +01:00
|
|
|
var port = process.env.PORT || config.port;
|
|
|
|
|
|
|
|
console.log('Starting the server');
|
|
|
|
server.listen(port, function() {
|
|
|
|
console.log('%s is running at %s', server.name, server.url);
|
|
|
|
});
|
|
|
|
|
2015-11-01 03:25:29 +01:00
|
|
|
|
|
|
|
/**
|
2015-12-02 00:12:57 +01:00
|
|
|
* Exports
|
2015-11-01 03:25:29 +01:00
|
|
|
*/
|
2015-11-02 01:38:51 +01:00
|
|
|
module.exports = server;
|