Home > Net >  Why nodejs use magic strings in its core modules willy-nilly?
Why nodejs use magic strings in its core modules willy-nilly?

Time:12-26

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)?

CodePudding user response:

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".

CodePudding user response:

I am not 100 % sure, but the formal definition on the official Node website describes Node as “a JavaScript runtime built on Chrome’s V8 JavaScript engine.” and v8 was primarily built for the client side i.e web. So, if you look at the web events, you will see this pattern being used. Probably that is why i think.

  • Related