Use Cases of Node.js
HTTP server
Section titled “HTTP server”const http = require('http');
console.log('Starting server...');var config = { port: 80, contentType: 'application/json; charset=utf-8'};// JSON-API server on port 80
var server = http.createServer();server.listen(config.port);server.on('error', (err) => { if (err.code == 'EADDRINUSE') console.error('Port '+ config.port +' is already in use'); else console.error(err.message);});server.on('request', (request, res) => { var remoteAddress = request.headers['x-forwarded-for'] || request.connection.remoteAddress; // Client address console.log(remoteAddress +' '+ request.method +' '+ request.url);
var out = {}; // Here you can change output according to `request.url` out.test = request.url; res.writeHead(200, { 'Content-Type': config.contentType }); res.end(JSON.stringify(out));});server.on('listening', () => { c.info('Server is available: http://localhost:'+ config.port);});Console with command prompt
Section titled “Console with command prompt”const process = require('process');const rl = require('readline').createInterface(process.stdin, process.stdout);
rl.pause();console.log('Something long is happening here...');
var cliConfig = { promptPrefix: ' > '}
/* Commands recognition BEGIN*/var commands = { eval: function(arg) { // Try typing in console: eval 2 * 10 ^ 3 + 2 ^ 4 arg = arg.join(' '); try { console.log(eval(arg)); } catch (e) { console.log(e); } }, exit: function(arg) { process.exit(); }};rl.on('line', (str) => { rl.pause(); var arg = str.trim().match(/([^"]+)|("(?:[^"\\]|\\.)+")/g); // Applying regular expression for removing all spaces except for what between double quotes: http://stackoverflow.com/a/14540319/2396907 if (arg) { for (let n in arg) { arg[n] = arg[n].replace(/^\"|\"$/g, ''); } var commandName = arg[0]; var command = commands[commandName]; if (command) { arg.shift(); command(arg); } else console.log('Command "'+ commandName +'" doesn\'t exist'); } rl.prompt();});/* END OF Commands recognition*/
rl.setPrompt(cliConfig.promptPrefix);rl.prompt();