.NET developer exploring NodeJS, MongoDB, AngularJS and ExpressJS

I am a C# .NET developer, and the tools I use to build a web application are:

  • SQL Server
  • Entity Framework
  • .NET Web API
  • ASP.NET MVC
  • HTML/CSS/jQuery

I have been reading up on AngularJS, NodeJS, MongoDB, and ExpressJS, and it certainly seems like with these "Javascript-ish" technologies, you can build a full blown web application.

My question is where does this leave me with my knowledge of the .NET stack? I want to start embracing these newer technologies, and build my next website with them, however, I am confused as to whether I should completely do away with the .NET stack, or if I should complement these newer technologies with the power of the .NET stack where it might make sense. Here are some of my thoughts:

  • MongoDB could replace SQL Server and Entity Framework
  • AngularJS can pretty much replace ASP.NET MVC (since both are MVC patterns, having both would be redundant, I think)
  • But when it comes to building an API layer, would NodeJS completely replace ASP.NET Web API? or could I use them together? What would make the most sense (generally speaking)? Considering that NoSQL databases like MongoDB have javascript-like syntaxes, do we even need server side APIs? Couldn't the client (theoretically) directly talk to the DB?
  • And where does ExpressJS fit in?

I am hoping someone can help to clarify how these technologies fit in with each other. Pretty sure that a lot of .NET developers looking to explore these newer technologies have the same questions.