response.writeHead and response.end in NodeJs
In your code, the writeHead()
is called to write the header of the response, that the application will serve to the client. The end()
method both sends the content of the response to the client and signals to the server that the response (header and content) has been sent completely. If you are still going to send anything else, you should call write()
method of res
response object instead.
The options
JSON object is a modifier that you may use, to override the default behaviour of the createServer()
method. In your code's case:
+ key: Private key to use for SSL (default is null)
+ cert: Public x509 certificate to use (default is null)
You can find more in this section of the Node.js API doc about the response.writeHead()
method.
You can find more in this section of the Node.js API doc about the https.createServer()
method.
Those calls to writeHead
and end
are not being done in the createServer
method, but rather in a callback.
It's a bit easier to see if you split out the callback into a separate function:
function handleRequest(req, res) {
res.writeHead(200);
res.end("hello world\n");
}
https.createServer(options, handleRequest).listen(8000);
So here we define a handleRequest
function and then pass that into the createServer
call. Now whenever the node.js server we created receives an incoming request, it will invoke our handleRequest
method.
This pattern is very common in JavaScript and is core to node.js' asynchronous event handling.