In node.js, a tcp server has the following methods to listen:
server.listen(port, [host], [backlog], [listeningListener])
server.listen(path, [listeningListener])
server.listen(handle, [listeningListener])
I would like to create an application specific server which calls this lower level tcp server. I would like to provide my users with a listen method which just calls the right listen method of a tcp server.
Is there a way for me to avoid writing three different listen methods, and passing their arguments to the three tcp server’s listen methods? Will it pass on optional parameters?
Can I just do something like this (with slightly made up syntax):
myapp.listen(args*){
tcpserver.listen(args*);
}
In JavaScript, all of a function’s arguments are always available under the name
arguments, whether or not they also have their own names; so you can write:using the function
Function.applyto forwardargumentsto the desired method-call.Edited to add: I should also clarify that although this:
is consistent with the way the Node.js documentation describes things, it’s not strictly accurate. JavaScript doesn’t have any concept of function/method overloading; rather, it must be that a
Serverobject has a singlelistenmethod that examines its first argument to determine which “overload” to execute.