T. Budiman
@tbudiman
Bala
In order to follow this tutorial, the reader should read Introduction to Node.js and Introduction to Redis. This tutorial, the source code and sample data are available at IPtoCountry-Mapping
In this tutorial we will write several application involving IP identification. We have a csv file containing the IP ranges for all cities in the world, with a few information about that city. The objective is to create a IP lookup, where the application should identify the city from a given IP Address. We'll create a simple web application which will identify the IP address of the request and then display the city information. In order to achieve this in a very fast way, we'll use redis as our database of IP addresses. Since this is a fairly simple and straightforward application, we'll also try to do this using the Test-Driven Development methodology, which requires us to create the unit tests first.
We need several node.js modules to complete this tutorial. First, we'll create a directory and enter it.
$ mkdir IPtoCountry-Mapping
$ cd IPtoCountry-Mapping
The csv module is needed to read a csv file.
$ npm install csv
The redis module is needed to access the redis database.
$ npm install hiredis redis
Mocha and should modules are needed to do unit testing. We'll install mocha globally, so other projects can use it too.
$ sudo npm install -g mocha
$ npm install should
And we'll use underscore.string module to help us with some string manipulation functions.
$ npm install underscore.string