There are many ways how to avoid using callbacks in NodeJS. I chose Promises. They are nice and intuitive. At least at first sight. I did not understand how to handle errors in chained Promises.
I use Q. I have created github repo where you can see chained Promises and error handling in action. Feel free to play with it.