Event-driven programming can be overwhelming for beginners, which can makeNode.js difficult to get started with. But don't let that discourage you; In this article, I will teach you some of the basics of Node.js and explain why it has become so popular.
Asynchronous Programming
Node.js uses a module architecture to simplify the creation of complex applications.
Chances are good that you are familiar with asynchronous programming; it is, after all, the "A" in Ajax. Every function in Node.js is asynchronous. Therefore, everything that would normally block the thread is instead executed in the background. This is the most important thing to remember about Node.js. For example, if you are reading a file on the file system, you have to specify a callback function that is executed when the read operation has completed.
You are Doing Everything!
Node.js is only an environment - meaning that you have to do everything yourself. There is not a default HTTP server, or any server for that matter. This can be overwhelming for new users, but the payoff is a high performing web app. One script handles all communication with the clients. This considerably reduces the number of resources used by the application. For example, here is the code for a simpleNode.js application:
And here is the equivalent written in PHP:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
| $a = null; $b = null; $c = null; $i = null; $max = 1000000000; $start = microtime(true); for ( $i = 0; $i < $max ; $i ++) { $a = 1234 + 5678 + $i ; $b = 1234 * 5678 + $i ; $c = 1234 / 2 + $i ; } var_dump(microtime(true) - $start ); |
Now let's look at the benchmark numbers. The following table lists the response times, in milliseconds, for these two simple applications:
Number of iterations | Node.js | PHP |
100 | 2.00 | 0.14 |
10'000 | 3.00 | 10.53 |
1'000'000 | 15.00 | 1119.24 |
10'000'000 | 143.00 | 10621.46 |
1'000'000'000 | 11118.00 | 1036272.19 |
I executed the two apps from the command line so that no server would delay the apps' execution. I ran each test ten times and averaged the results. PHP is notably faster with a smaller amount of iterations, but that advantage quickly dissolves as the number of iterations increases. When all is said and done, PHP is 93% slower than Node.js!
Node.js is fast, but you will need to learn a few things in order to use it properly.
Modules
Node.js uses a module architecture to simplify the creation of complex applications. Modules are akin to libraries in C, or units in Pascal. Each module contains a set of functions related to the "subject" of the module. For example, the http module contains functions specific to HTTP. Node.js provides a few core modules out of the box to help you access files on the file system, create HTTP and TCP/UDP servers, and perform other useful functions.
Including a module is easy; simply call the
require()
function, like this:Node.js is only an environment; you have to do everything yourself.
The
require()
function returns the reference to the specified module. In the case of this code, a reference to the http module is stored in the http
variable.
In the above code, we passed the name of a module to the
require()
function. This causes Node to search for a node_modules folder in our application's directory, and search for the http module in that folder. If Node does not find the node_modulesfolder (or the http module within it), it then looks through the global module cache. You can also specify an actual file by passing a relative or absolute path, like so:
Modules are encapsulated pieces of code. The code within a module is mostly private - meaning that the functions and variables defined within them are only accessible from the inside of the module. You can, however, expose functions and/or variables to be used outside of the module. To do so, use the
exports
object and populate its properties and methods with the pieces of code that you want to expose. Consider the following module as an example:
This code creates a
PI
variable that can only be accessed by code contained within the module; it is not accessible outside of the module. Next, two functions are created on the exports
object. These functions are accessible outside of the module because they are defined on the exports
object. As a result, PI
is completely protected from outside interference. Therefore, you can rest assured thatarea()
and circumference()
will always behave as they should (as long as a value is supplied for the r
parameter).Global Scope
Node is a JavaScript environment running in Google's V8 JavaScript engine. As such, we should follow the best practices that we use for client-side development. For example, we should avoid putting anything into the global scope. That, however, is not always possible. The global scope in Node is
GLOBAL
(as opposed to window
in the browser), and you can easily create a global variable of function by omitting the var
keyword, like this:
Once again, globals should be avoided whenever possible. So be careful and remember to use
var
when declaring a variable.Installation
Naturally, we need to install Node before we can write and execute an app. Installation is straight forward, if you use Windows or OS X; the nodejs.org website offers installers for those operating systems. For Linux, use any package manager. Open up your terminal and type:
or:
Node.js is in sid repositories; you may need to add them to your sources list:
But be aware that installing sid packages on older systems may break your system. Be careful, and remove
/etc/apt/sources.list.d/sid.list
after you finish installing Node.
also for practices:
www.nodeschool.com
Informative ..!!
ReplyDeletethanks for your valuable comment....soon will explain next topic related to node
Delete