= Using Node.js = Hello world (text mode): const http = require('http'); const hostname = '127.0.0.1'; const port = 3000; const server = http.createServer((req, res) => { res.statusCode = 200; // Text mode: res.setHeader('Content-Type', 'text/plain'); res.end('Hello World\n'); }); server.listen(port, hostname, () => { console.log(`Server running at http://${hostname}:${port}/`); }); Hello World (HTML mode): const http = require('http'); const hostname = '127.0.0.1'; const port = 3000; const server = http.createServer((req, res) => { res.statusCode = 200; // HTML mode: res.setHeader('Content-Type', 'text/html'); res.write("Requested URL: " + req.url); res.write("

Phone Logs

"); res.write("report_01-02-2017"); // url of file, relative to root of http server res.end(); }); server.listen(port, hostname, () => { console.log(`Server running at http://${hostname}:${port}/`); });
Read requested files: const http = require('http'); const fs = require('fs'); const path = require('path'); const url = require('url'); const hostname = '127.0.0.1'; const port = 3000; const server = http.createServer((req, res) => { res.statusCode = 200; // Read requested file fs.readFile('./data/report_01-02-2017.htm', function(err, data) { // relative path of file res.writeHead(200, {'Content-Type': 'text/html'}); res.write(data); res.end(); }); }); server.listen(port, hostname, () => { console.log(`Server running at http://${hostname}:${port}/`); }); Serve Homepage and subpages: const http = require('http'); const fs = require('fs'); const path = require('path'); const url = require('url'); const hostname = '127.0.0.1'; const port = 3000; const server = http.createServer((req, res) => { res.statusCode = 200; var q = url.parse(req.url, true); var filename = "." + q.pathname; switch(q.pathname) { case '/': // Serve Homepage res.setHeader('Content-Type', 'text/html'); res.write("Requested URL: " + req.url); res.write("

Phone Logs

"); //res.write("report_01-02-2017"); // url of file, relative to root of http server // Read file listing var pth = "./data"; fs.readdir(pth, function (err, files) { if (err) { throw err; } files.map(function (file) { return path.join(pth, file); }).filter(function (file) { //return fs.statSync(file).isFile(); return fs.stat(file).isFile(); }).forEach(function (file) { console.log("%s (%s)", file, path.extname(file)); res.write("
%s (%s)
\n", file, path.extname(file)); }); }); res.end(); break; default: // Read and serve requested file, eg. '/data/report_01-02-2017.htm' fs.readFile(filename, function(err, data) { if (err) { res.writeHead(404, {'Content-Type': 'text/html'}); return res.end("404 Not Found"); } res.writeHead(200, {'Content-Type': 'text/html'}); res.write(data); return res.end(); }); break; } }); server.listen(port, hostname, () => { console.log(`Server running at http://${hostname}:${port}/`); });
== Running App Forever == Install ''forever'' module: $ npm install -g forever Start your application: $ forever server.js Alternatively, start your application as a service: $ forever start server.js ''forever'' restarts your app when it crashes or stops for some reason. To restrict restarts to 5 times, use: $ forever -m5 server.js List all running processes, note the integer in the brackets, and use it to stop a process: $ forever list $ forever stop 0 List all running processes, and restart a running process goes: $ forever list $ forever restart 0 When working on your application file, you can use the -w parameter to restart automatically whenever your server.js file changes: $ forever -w server.js == Running App as Cronjob == // Run main loop as a cronjob. // Alternative to: $ forever start app.js (requires: $ npm install forever) var CronJob = require('cron').CronJob; var job = new CronJob({ cronTime: '00 30 11 * * 1-5', onTick: function() { /* * Runs every weekday (Monday through Friday) * at 11:30:00 AM. It does not run on Saturday * or Sunday. */ }, start: false, timeZone: 'America/New_York' }); job.start(); // Run main loop, executing doSomeWork() on timer // Alternative to: $ forever start app.js (requires: $ npm install forever) function run() { setInterval(doSomeWork, refreshInterval); }; run(); == References == * [[https://www.w3schools.com/nodejs/default.asp|W3 Schools Tutorial: Node.js]] * [[https://nodejs.org/dist/latest-v6.x/docs/api/synopsis.html|Node.js API Synopsis]] * [[http://nodeexamples.com|Node Examples]] * [[https://github.com/mapbox/node-sqlite3/wiki/API|SQLite3 API for Node JS]]