I’m learning nodejs and having previous experience with other {strongly typed} languages I’m suffering a bit finding the reason why there is so much abuse of magic values (mainly strings) in core modules of nodejs.
Just to give an example, let’s take the implementation of the http module which has classes that extends EventEmitter and relies on strings to identify events, such as the http.Server class with its 'connection', 'connect' and 'request' events identifiers.
Is there a reason for that? Isn’t there any better way to achieve that (like just using an object for instance)?
>Solution :
Is there a reason for that?
ECMAScript does not have enumerations. To model them, one would have to use one of the available types, namely numbers, strings or objects (or symbols, though they’re younger than NodeJS). Now "magic strings" are far better than "magic numbers" or "magic empty objects".