From aa4e552a03657a63922f5cd085431257c183f458 Mon Sep 17 00:00:00 2001 From: Jannik Schönartz Date: Mon, 2 Jul 2018 19:52:25 +0000 Subject: [server] Initial commit to add the node server stuff. --- server/bin/www | 96 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100755 server/bin/www (limited to 'server/bin') diff --git a/server/bin/www b/server/bin/www new file mode 100755 index 0000000..735e309 --- /dev/null +++ b/server/bin/www @@ -0,0 +1,96 @@ +#!/usr/bin/env node + +/** + * Module dependencies. + */ + +var app = require('../app'); +var debug = require('debug')('bas:server'); +var http = require('http'); +var https = require('https'); +var fs = require('fs'); + +/** + * Get port from environment and store in Express. + */ + +var port = normalizePort(process.env.PORT || '3000'); +app.set('port', port); + +/** + * Create HTTP server. + */ + +var options = { + key: fs.readFileSync('./bin/privkey.pem'), + cert: fs.readFileSync('./bin/fullchain.pem') +}; +var server = https.createServer(options, app); + +/** + * Listen on provided port, on all network interfaces. + */ + +server.listen(port); +server.on('error', onError); +server.on('listening', onListening); + +/** + * Normalize a port into a number, string, or false. + */ + +function normalizePort(val) { + var port = parseInt(val, 10); + + if (isNaN(port)) { + // named pipe + return val; + } + + if (port >= 0) { + // port number + return port; + } + + return false; +} + +/** + * Event listener for HTTP server 'error' event. + */ + +function onError(error) { + if (error.syscall !== 'listen') { + throw error; + } + + var bind = typeof port === 'string' + ? 'Pipe ' + port + : 'Port ' + port; + + // handle specific listen errors with friendly messages + switch (error.code) { + case 'EACCES': + console.error(bind + ' requires elevated privileges'); + process.exit(1); + break; + case 'EADDRINUSE': + console.error(bind + ' is already in use'); + process.exit(1); + break; + default: + throw error; + } +} + +/** + * Event listener for HTTP server 'listening' event. + */ + +function onListening() { + var addr = server.address(); + var bind = typeof addr === 'string' + ? 'pipe ' + addr + : 'port ' + addr.port; + debug('Listening on ' + bind); +} -- cgit v1.2.3-55-g7522