Skip to content

Instantly share code, notes, and snippets.

@ry
Created January 4, 2011 00:03
Show Gist options
  • Save ry/764213 to your computer and use it in GitHub Desktop.
Save ry/764213 to your computer and use it in GitHub Desktop.
new node https api
// curl -k https://localhost:8000/
var https = require('https');
var fs = require('fs');
var options = {
key: fs.readFileSync('test/fixtures/keys/agent2-key.pem'),
cert: fs.readFileSync('test/fixtures/keys/agent2-cert.pem')
};
https.createServer(options, function (req, res) {
res.writeHead(200);
res.end("hello world\n");
}).listen(8000);
@tj
Copy link

tj commented Jan 10, 2011

it just looks ugly? do you realize which language you are using lol think of it this way:

(useHTTPS ? https : http).createServer(callback, options)

options can be safely ignore when http, but support simple swapping for https

@creationix
Copy link

Only slight longer, but very clear and simple:

(useHTTPS ? http.createServer(callback) : https.createServer(options, callback))

@sveisvei
Copy link

In my puny head, it makes my eyes jump around more than the first example - I, imho, like when I can see input first, and then apply those to what I see inside the "output". Altough I see your point(both), for me at least input-output trumphs those now. Convince me otherwise :).

https.createServer(function(req, res){
  req.parseSomething(function(){
    req.checkSomething();
    // ....etc
    // ....etc
    // ....etc
    // ....etc
    // ....alot of code, and options down in the bottom.
  });
}, options);

@tj
Copy link

tj commented Jan 11, 2011

yeah that looks better

@tilgovi
Copy link

tilgovi commented Jan 13, 2011

(useHTTPS ? function (cb) { https.createServer(options, cb) } : http.createServer)(function (req, res) {
  res.writeHead(200);
  res.end("Don't be silly. Callbacks are always last.")
}).listen(8080);

@tj
Copy link

tj commented Jan 13, 2011

dude that is nasty lol wtf

@rikkert
Copy link

rikkert commented Jan 13, 2011

It is very sweet the way it is, just like we are used with require('http').
Great stuff tnx!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment