There are a lot of factors that could go into choosing which technology to use for your web application stack, which are probably too numerous to list here. However, some reasons to choose NodeJS come with advantages like:
Its the same language one the client and server side
code can be shared
Less context switching when developing FE vs. BE
It's designed to be asynchronous, so it forces encourages you to think in terms of delegation
the ecosystem is huge
the language is developing rapidly (could also be a disadvantage)
Some disadvantages might be:
Not strongly typed (but there are a solutions to that problem like TypeScript and Flow)
JS is single-threaded, so it's not a good choice for CPU-intense operations
It can be harder to do things you need to do synchronously (not impossible, but more verbose compared to an imperative language like Java or python)
There are some oddities to the language that can be frustrating.
In terms of tutorials, I've watched a few of
Get the Code Here : http://goo.gl/zmOf30Best NodeJS / Express Book : http://amzn.to/1I6vNZoSupport me on Patreon : https://www.patreon.com/derekbanasBootstra...
, and I like his teaching style. I've heard the Egghead tutorials
are really good too, and definitely check out MDN
as you progress. Nothing beats actually getting in there and trying stuff though, developing a plugin
for NodeBB can teach you a few tricks.