Skip to content

Instantly share code, notes, and snippets.

@JBreit
Created January 7, 2017 18:15
Show Gist options
  • Save JBreit/e26e1ecf76132207ed9f9a19a37f252c to your computer and use it in GitHub Desktop.
Save JBreit/e26e1ecf76132207ed9f9a19a37f252c to your computer and use it in GitHub Desktop.
Raven NodeJS Server
var app = function (request, response) {
'use strict';
/*var methods = Object.create(null);
console.log('methods: %s', methods);*/
console.log(typeof request);
response.write('test');
//response.end('test');
request.pipe(response);
};
module.exports = app;
{
"host": "127.0.0.1",
"port": 443,
"ssl": {
"active": true,
"agent": false,
"key": "./server/config/ssl/server.pem",
"certificate": "./server/config/ssl/server.crt"
}
}
var createServer = require('./server').createServer,
app = require('./client'),
defaults = require('./server/config/defaults'),
server = undefined;
function listen(err) {
'use strict';
/*
this is where child process module gets implemented. research more on the subject
*/
if (err) {
process.exit(1);
}
var addr = server.address();
var bind = typeof addr === 'string'
? 'pipe ' + addr
: 'port ' + addr.port;
/*console.log('Server:');
console.log(server);*/
console.log('server listening at: ' + __defaults.host + ':' + __defaults.port);
console.log('bind: %s', bind);
}
server = createServer(defaults, app, listen);
var fs = require('fs'),
http = require('http'),
https = require('https'),
normalizePort = require('./utils').normalizePort;
function extractCredentialsFrom(settings) {
'use strict';
var secure = settings.ssl !== undefined && settings.ssl.enabled === true;
if (secure) {
return {
key: fs.readFileSync(settings.ssl.key),
certificate: fs.readFileSync(settings.ssl.certificate)
};
}
}
function configure(settings) {
'use strict';
return extractCredentialsFrom(settings);
}
function start(app, options) {
'use strict';
if (options) {
return https.createServer(options, app);
} else {
return http.createServer(app);
}
}
exports.createServer = function (settings, app, callback) {
'use strict';
var options = configure(settings),
port = normalizePort(settings.port);
return start(app, options).listen(port, callback);
};
exports.normalizePort = function (val) {
'use strict';
var port = parseInt(val, 10);
if (isNaN(port)) {
return val;
}
if (port >= 0) {
return port;
}
return false;
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment