I am an experienced Java developer and want to get into JavaScript development by writing a brand new application.
My current understanding is that I can use NodeJS with ExpressJS on the backend and use ReactJS on the frontend.
Please let me know if I am on right track. Also, please suggest some good book or blog for these topics.
In the backend, I would personally recommend to indeed go with ExpressJS over KoaJS, the "callback-less" successor to Express. I tried working with koa, but error handling is an absolute mess when using generators.
May I suggest Meteor JS https://www.meteor.com/
It is powered by NodeJS but abstracts it away.
MeteorJS gets you up and running fairly quickly. Deployment isn't too complicated using Meteor Up (MUP). That being said, I have not built a MeteorJS app that has scaled to millions of users - only smaller webapps.
Good luck and have fun with it ^_^
i enjoyed this https://github.com/banderson/generator-flux-react
That'll work fine. There are many different approaches to javascript apps. You can go angular, react, ember, etc on the front end, then node, ruby, python, php, java, javascript, etc on the backend. All will work fine in 90% of cases. People have their preferences for which has the best organization, speed, documentation and whatnot, but the most important thing is that you use one that you want to be using, so that you remain excited enough to learn them. My suggestion is to do a RESTfull backend, so that you get started out using a good interface between your back and front ends. Have fun!