Итак, единственная истинная разница в двух фрагментах кода, о которых вы упоминали в своем исходном вопросе, заключается в том, что вы не используете ключевое слово new.
Для ясности конструктор Server выглядит следующим образом (во время post-2012-12-13):
function Server(requestListener) {
if (!(this instanceof Server)) return new Server(requestListener);
net.Server.call(this, { allowHalfOpen: true });
if (requestListener) {
this.addListener('request', requestListener);
}
// Similar option to this. Too lazy to write my own docs.
// http://www.squid-cache.org/Doc/config/half_closed_clients/
// http://wiki.squid-cache.org/SquidFaq/InnerWorkings#What_is_a_half-closed_filedescriptor.3F
this.httpAllowHalfOpen = false;
this.addListener('connection', connectionListener);
this.addListener('clientError', function(err, conn) {
conn.destroy(err);
});
}
util.inherits(Server, net.Server);