Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Please include comments with the added code. Your job is to use NPM to download a free module called moment described in our textbook and

 Please include comments with the added code. Your job is to use NPM to download a free module called moment described in our textbook and use Node.js built-in fs module to log the customer feedback messages to a text file named feedback.log. Each feedback has to be logged on its own line and has to be started with a time stamp in a pair of square brackets. /** app.js This is a simple web site that hosts a fake Wake Tech Credit Union web site. It is used to demonstrate how easy it is to create and deploy a web sever using Node.js. */  var express = require('express'); var fs = require('fs'); /**  * Define the sample application.  */ var SampleApp = function() { // Scope.  var self = this; /* ================================================================ */  /* Helper functions. */  /* ================================================================ */   /**  * Set up server IP address and port # using env variables/defaults.  */  self.setupVariables = function() { // Set the environment variables we need.  //self.ipaddress = process.env.IP;  //self.port = process.env.PORT || 5000;   //if (typeof self.ipaddress === "undefined") {  // self.ipaddress = "127.0.0.1";  //};  }; /**  * Populate the cache.  */  self.populateCache = function() { if (typeof self.zcache === "undefined") { self.zcache = { 'index.html': '' }; } // Local cache for static content.  self.zcache['index.html'] = fs.readFileSync('./index.html'); }; /**  * Retrieve entry (content) from cache.  * @param {string} key Key identifying content to retrieve from cache.  */  self.cache_get = function(key) { return self.zcache[key]; }; /**  * terminator === the termination handler  * Terminate server on receipt of the specified signal.  * @param {string} sig Signal to terminate on.  */  self.terminator = function(sig){ if (typeof sig === "string") { console.log('%s: Received %s - terminating sample app ...', Date(Date.now()), sig); process.exit(1); } console.log('%s: Node server stopped.', Date(Date.now()) ); }; /**  * Setup termination handlers (for exit and a list of signals).  */  self.setupTerminationHandlers = function(){ // Process on exit and signals.  process.on('exit', function() { self.terminator(); }); // Removed 'SIGPIPE' from the list - bugz 852598.  ['SIGHUP', 'SIGINT', 'SIGQUIT', 'SIGILL', 'SIGTRAP', 'SIGABRT', 'SIGBUS', 'SIGFPE', 'SIGUSR1', 'SIGSEGV', 'SIGUSR2', 'SIGTERM'  ].forEach(function(element, index, array) { process.on(element, function() { self.terminator(element); }); }); }; /* ================================================================ */  /* App server functions (main app logic here). */  /* ================================================================ */   /**  * Create the routing table entries + handlers for the application.  */  self.createRoutes = function() { self.routes = { }; self.routes['/feedback'] = function(req, res) { console.log("-- Received a customer feedback: [" + req.body.feedback" + "]");  res.send("WTCU FeedbackThanks for your feedback!"); }; self.routes['/'] = function(req, res) { res.setHeader('Content-Type', 'text/html'); res.send(self.cache_get('index.html') ); }; }; /**  * Initialize the server (express) and create the routes and register  * the handlers.  */  self.initializeServer = function() { self.createRoutes(); //self.app = express.createServer();  self.app = express(); self.app.set('port', process.env.PORT || 3333); self.app.set('ip', process.env.IP || "127.0.0.1"); self.app.use(express.static(__dirname)); //self.app.use(express.bodyParser());  self.app.use(express.json()); self.app.use(express.urlencoded()); // Add handlers for the app (from the routes).  for (var r in self.routes) { self.app.get(r, self.routes[r]); // maps the HTTP GET request  self.app.post(r, self.routes[r]); // maps the HTTP POST request  } }; /**  * Initializes the sample application.  */  self.initialize = function() { self.setupVariables(); self.populateCache(); self.setupTerminationHandlers(); // Create the express server and routes.  self.initializeServer(); }; /**  * Start the server (starts up the sample application).  */  self.start = function() { // Start the app on the specific interface (and port).  self.app.listen(self.app.get('port'), function() { console.log('%s: Node server started on %s:%d ...', Date(Date.now() ), self.app.get('ip'), self.app.get('port')); }); }; }; /* Sample Application. */  /**  * main(): Main code.  */ var zapp = new SampleApp(); zapp.initialize(); zapp.start(); 

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Students also viewed these Databases questions

Question

Into what four categories owners equity subdivided?

Answered: 1 week ago

Question

Detailed note on the contributions of F.W.Taylor

Answered: 1 week ago

Question

here) and other areas you consider relevant.

Answered: 1 week ago