Initiate web server
This commit is contained in:
		
							parent
							
								
									7c74514f4f
								
							
						
					
					
						commit
						3cd55961cb
					
				
					 1 changed files with 39 additions and 20 deletions
				
			
		
							
								
								
									
										59
									
								
								index.js
									
										
									
									
									
								
							
							
						
						
									
										59
									
								
								index.js
									
										
									
									
									
								
							|  | @ -1,30 +1,49 @@ | |||
| // index.js
 | ||||
| // where your node app starts
 | ||||
| 
 | ||||
| // init project
 | ||||
| require('dotenv').config(); | ||||
| var express = require('express'); | ||||
| const express = require('express'); | ||||
| var app = express(); | ||||
| 
 | ||||
| // enable CORS (https://en.wikipedia.org/wiki/Cross-origin_resource_sharing)
 | ||||
| // so that your API is remotely testable by FCC
 | ||||
| var cors = require('cors'); | ||||
| app.use(cors({ optionsSuccessStatus: 200 })); // some legacy browsers choke on 204
 | ||||
| 
 | ||||
| // http://expressjs.com/en/starter/static-files.html
 | ||||
| app.use(express.static('public')); | ||||
| const ParserAPI = require('./scripts/ParserAPI').ParserAPI; | ||||
| 
 | ||||
| // http://expressjs.com/en/starter/basic-routing.html
 | ||||
| app.get('/', function (req, res) { | ||||
|   res.sendFile(__dirname + '/views/index.html'); | ||||
| }); | ||||
| class WebServer { | ||||
| 	/* | ||||
| 		Initiate the web server.  | ||||
| 
 | ||||
| 		@param {function} callback - The callback run before activating the server | ||||
| 	*/ | ||||
| 
 | ||||
| 		constructor(callback) { | ||||
| 			app.use(cors({ optionsSuccessStatus: 200 })); // some legacy browsers choke on 204
 | ||||
| 			 | ||||
| 
 | ||||
| 			this.#setDefaults(); | ||||
| 			(callback) ? this[`activity`] = callback() : null; | ||||
| 
 | ||||
| 			var listener = app.listen(process.env.PORT || 3000, () => { | ||||
| 				console.log(`Active on port ${listener.address().port}.`); | ||||
| 			}); | ||||
| 	} | ||||
| 
 | ||||
| 	/* Configure the default responses for the web server. */ | ||||
| 	#setDefaults() { | ||||
| 		// http://expressjs.com/en/starter/static-files.html
 | ||||
| 		app.use(express.static(__dirname + WebServer.paths['assets'])); | ||||
| 
 | ||||
| 		// http://expressjs.com/en/starter/basic-routing.html
 | ||||
| 		app.get("/", function (REQUEST, RESPONSE) { | ||||
| 			RESPONSE.sendFile(__dirname + WebServer[`paths`][`default`]); | ||||
| 		}); | ||||
| 	} | ||||
| 	 | ||||
| 	static paths = { | ||||
|     "assets": "/public", | ||||
|     "default": '/views/index.html' | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| new WebServer(() => {return (new ParserAPI(app))}); | ||||
| 
 | ||||
| // your first API endpoint...
 | ||||
| app.get('/api/hello', function (req, res) { | ||||
|   res.json({ greeting: 'hello API' }); | ||||
| }); | ||||
| 
 | ||||
| // listen for requests :)
 | ||||
| var listener = app.listen(process.env.PORT || 3000, function () { | ||||
|   console.log('Your app is listening on port ' + listener.address().port); | ||||
| }); | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue