Created
August 20, 2017 21:22
-
-
Save natmegs/81f11655d0ed7c22cd0cf924f5465707 to your computer and use it in GitHub Desktop.
Basic Node server
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var http = require('http'); | |
// Creates new Server object | |
// and takes a callback as param. | |
// The callback is an event listener; | |
// When server emits particular event, | |
// this function will be called. | |
// Callback takes 2 parameters, | |
// request (type IncomingRequest) | |
// and response (type ServerResponse). | |
// Returns a Server object | |
http.createServer(function(req, res) { | |
// Here we build our response to a request | |
// ServerResponse.writeHead takes as parameters: | |
// 1. statusCode: number | |
// 2. reasonPhrase?: string | |
// 3. headers?: OutgoingHttpHeaders | |
// writeHead writes header of response | |
res.writeHead(200, {'Content-Type': 'text/plain'}); | |
// end() method sends content of the response to the client | |
// and signals to the server that the response | |
// has been sent completely. | |
// If you are going to send anything else, use | |
// write() instead of end(). | |
// end() must be called on each response. | |
// end() takes params: | |
// 1. data: string | |
// 2. encoding?: string | |
// 3. callback?: Function | |
// If callback is specified, it wil be called when | |
// the response stream is finished. | |
res.end('Hello world\n'); | |
}).listen(1337, '127.0.0.1'); | |
// We call listen() on the Server object that is returned. | |
// listen() takes the following params: | |
// 1. port?: number | |
// 2. hostname?: string | |
// 3. backlog?: number | |
// 4. listeningListener?: Function | |
// listen() returns a Server object. | |
// 127.0.0.1 is standard internal IP address of localhost. | |
// Allows us to make request via localhost:1337 | |
// Execute file in command line; | |
// It keeps running and listens for requests. | |
// Give it a request by navigating to localhost:1337 in browser. | |
// This looks on localhost for a program that | |
// is listening on port 1337 and gives it HTTP request | |
// that browser is going to make. | |
// Node code will be run because request event will be emitted | |
// and we have server listening and we gave it a function; | |
// function will be invoked, which will read the request | |
// and allow me to write the response. | |
// HTTP response will be built and sent back to the browser, | |
// and browser will go on and do whatever it wants with it | |
// (whatever it has been programmed to do with that | |
// particular type of response). |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment