1
There were attempts at server-side JavaScript before Node; notably, the Netscape Enterprise Server supported
server-side JavaScript as early as 1995. However, server-side JavaScript didn’t start to gain traction until the
2009 introduction of Node.
CHAPTER 20
Node
Up until 2009, JavaScript was almost exclusively a browser scripting language.
2009, frustrated by the state of server-side options, a Joyent developer named Ryan
Dahl created Node. Node’s adoption was meteoric, and it even achieved success in the
notoriously slow-to-adopt enterprise markets.
For those who liked JavaScript as a language, Node made it possible to use the lan‐
guage for tasks traditionally relegated to other languages. For web developers, the
appeal is stronger than just the choice of language. Being able to write JavaScript on
the server means a consistent language choice—no mental context-switching, a
reduced reliance on specialists, and (perhaps most importantly) the ability to run the
same code on the server and the client.
While Node was introduced to enable web application development, its jump to the
server inadvertently enabled other nontraditional uses, such as desktop application
development and system scripting. In a sense, Node allowed JavaScript to grow up
and join the party.
Node Fundamentals
If you can write JavaScript, you can write Node applications. That’s not to say that you
can simply take any browser-based JavaScript program and run it on Node: browser-
based JavaScript uses APIs that are specific to the browser. In particular, in Node,
there is no DOM (which makes sense: there’s no HTML). Likewise, there are APIs
that are specific to Node that don’t exist in the browser. Some, like operating system
281