Date of Award
3-2016
Culminating Project Type
Starred Paper
Degree Name
Computer Science: M.S.
Department
Computer Science and Information Technology
College
School of Science and Engineering
First Advisor
Andrew A. Anda
Second Advisor
Bryant A. Julstrom
Third Advisor
Dennis Guster
Creative Commons License
This work is licensed under a Creative Commons Attribution-Noncommercial-No Derivative Works 4.0 License.
Keywords and Subject Headings
Node.js, Node.js Installation, AJAX, JavaScript, Node.js Security, Socket.io, Node.js Benchmarking, Server-side Javascript
Abstract
Node.js (also termed Node) is a platform built on Google Chrome V8 JavaScript runtime engine for easily building fast, scalable, and lightweight applications.V8 and Node are mostly implemented in C and C++ focusing on performance and low memory consumption. In this paper, we provide an overview of Node by comparing it to a conventional server-side scripting programming language, PHP. Initially, we focus on Node’s modularity, its in-built package manager labeled Node Package Manager and Node’s working architecture. The main feature of Node is its use of non-blocking event-driven I/O with an asynchronous programming model to remain lightweight and efficient in handling concurrency. These comprise the underlying features of Node which we discuss in detail. Node differs from JavaScript which we describe by emphasizing some major deficiencies in JavaScript that Node remediates. Likewise, by introducing AJAX, and its pros and cons, we show how Node surpasses AJAX in real-time application development usability. With Node.js, complex real-time applications can be built that can scale to millions of client connections. We also discuss factors supporting choosing Node and why developers should use it. We describe some of the security holes in Node with solutions to handle them. In order to clarify where Node succeeds and where it fails, we present two different benchmarks comparing Node with PHP. We conclude by highlighting some of the limitations of Node and we discuss the current developments in process to remediate Node’s deficiencies.
Recommended Citation
Chhetri, Nimesh, "A Comparative Analysis of Node.js (Server-Side JavaScript)" (2016). Culminating Projects in Computer Science and Information Technology. 5.
https://repository.stcloudstate.edu/csit_etds/5
Comments/Acknowledgements
I would like to thank my committee members, Professor Andrew A. Anda, Professor Bryant A. Julstrom, and Professor Dennis Guster for their continuous support, feedback and guidance. My special thank goes to Professor Dennis Guster and Martin Smith for providing the test environment in BCRL (Business Computing Research Laboratory) without which one of the important section of this paper would not have been possible. Also, I would like to thank the Computer Science Department Faculty at St. Cloud State University for providing me high-tech education and technical skills required to write technical paper like this. Special thanks also go to my family for supporting me and encouraging me to do the best.