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-12-06 14:53:42 +01:00
|
|
|
var log = require('./app/logger');
|
2015-07-26 23:37:22 +02:00
|
|
|
|
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"
|
|
|
|
});
|
|
|
|
|
2016-04-19 23:09:16 +02:00
|
|
|
|
2015-12-02 00:12:57 +01:00
|
|
|
server.pre(restify.pre.sanitizePath());
|
|
|
|
server.use(restify.acceptParser(server.acceptable));
|
|
|
|
server.use(restify.bodyParser());
|
|
|
|
server.use(restify.queryParser());
|
|
|
|
server.use(restify.authorizationParser());
|
|
|
|
server.use(restify.CORS());
|
|
|
|
server.use(restify.fullResponse());
|
2015-07-06 22:32:02 +02:00
|
|
|
|
2015-12-04 00:53:30 +01:00
|
|
|
/** Global error handler */
|
2015-12-02 00:12:57 +01:00
|
|
|
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-05 19:01:40 +01:00
|
|
|
log.info(err);
|
2015-12-02 00:12:57 +01:00
|
|
|
});
|
|
|
|
|
|
|
|
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;
|
|
|
|
|
2016-04-19 23:09:16 +02:00
|
|
|
var banner = `
|
|
|
|
oocccdMMMMMMMMMWOkkkkoooolcclX
|
|
|
|
llc:::0MMMMMMMM0xxxxxdlllc:::d
|
|
|
|
lll:::cXMMMMMMXxxxxxxxdlllc:::
|
|
|
|
lllc:::cXMMMMNkxxxdxxxxolllc::
|
|
|
|
olllc:::oWMMNkxxxdloxxxxolllc: ## ## ### #### ## ## ######## ## ## ## ## ##
|
|
|
|
xolllc:::xWWOxxxdllloxxxxolllc ### ### ## ## ## ### ## ## ## ## ## ## ##
|
|
|
|
xxolllc:::x0xxxdllll:oxxxxllll #### #### ## ## ## #### ## ## ## ## ## ## ##
|
|
|
|
xxxolllc::oxxxxllll:::dxxxdlll ## ### ## ## ## ## ## ## ## ###### ## ## ## ###
|
|
|
|
xxxdllll:lxxxxolllc:::Okxxxdll ## ## ######### ## ## #### ## ## ## ## ## ##
|
|
|
|
0xxxdllloxxxxolllc:::OMNkxxxdl ## ## ## ## ## ## ### ## ## ## ## ## ##
|
|
|
|
W0xxxdllxxxxolllc:::xMMMXxxxxd ## ## ## ## #### ## ## ## ######## ####### ## ##
|
|
|
|
MWOxxxdxxxxdlllc:::oWMMMMKxxxx
|
|
|
|
MMWkxxxxxxdlllc:::oNMMMMMM0xxx
|
|
|
|
MMMXxxxxxdllllc::cXMMMMMMMWOxx
|
|
|
|
MMMM0xxxxolllc:::kMMMMMMMMMXxx
|
|
|
|
`
|
2015-12-02 00:12:57 +01:00
|
|
|
server.listen(port, function() {
|
2016-04-19 23:09:16 +02:00
|
|
|
console.log(banner);
|
|
|
|
console.log('Magic happens on port ' + port);
|
2015-12-02 00:12:57 +01:00
|
|
|
});
|
|
|
|
|
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;
|