NodeJS’s API is still fairly low-level. Setting up a full web server stack takes a decent amount of work and while people have started authoring solutions for almost every problem a web developer may face, many of those solutions are still in their infancy and lacking features. Time will tell whether NodeJS can attain the kind of ease of use that we get from something like PHP or the enterprise level security and reliability something like .NET or Java. Where NodeJS is exciting is in building some of the ‘glue’ between the front end and the back end. It can be useful for helping to optimize slow processes or developing new kinds of web services that don’t exist yet because they would be too slow or cumbersome to develop using other tools. Node is also finding some use as a way to author cloud based services.
I’ve only been using Node for a couple weeks, but my initial experiences have been very favorable. My first Node project involves interfacing with the Facebook API and processing large amounts of data. I already had a working solution in PHP, but wanted to see what kind of performance gain I would get from using NodeJS. This is a perfect scenario for Node, since each Facebook call can be parallelized by using asynchronous NodeJS calls. The same goes for any calls to our database. I’m currently seeing a speedup of nearly 10x just from porting my code from PHP to NodeJS (doing no other tricks). The Node solution will allow for better scaling and lower memory usage. I was able to use two community made modules in the project – the node-facebook-client and SequelizeJS for talking to the database.