I'm sure it will be obvious, but let me say upfront that I'm a newb to web development. I've been taking Udacity, Coursera, and Code Academy classes, as well as reading intro books, but nowhere can I seem to get a good description of how all the different tech components of web development fit together. I've become interested in the MEAN stack, and I'm planning to start with it for my first app. I've read several descriptions of each component, but it all still seems very abstract. I'm much more used to working in more physical fields, like carpentry and mechanics, where you can see how everything fits together. I find having that solid grasp of the big idea helps immensely with learning the details.
Can anyone offer a good overview of the function of each of the MEAN components, preferably dumbed down to newb level?
Or better yet, recommend a resource that will give such an overview and then go into more detail?
+--------------+ +------------+ +-----------+
| Browser | | Node.js | | MongoDB |
| | | | | |
| Angular.js <----> Express.js <----> Database |
| | | | | |
+--------------+ +------------+ +-----------+
<-->: data paths
Node.js Node.js is a JavaScript runtime built on the V8 JavaScript engine (developed by Google for Google Chrome) and the libuv asynchronous I/O library (written for Node). This means you can run JavaScript on the server-side, in a fashion similar to Ruby, Python, or Perl.
Express.js Express is a Node.js HTTP server framework, designed to give you all the utilities to get going right away. It's very lightweight, especially when compared to frameworks like Rails or Django.
Angular.js Angular.js is a client-side (in the browser) framework for creating and displaying dynamic websites and web applications. It functions much differently than the incredibly popular jQuery, in that you are discouraged from working with the HTML directly and instead are making a view (the HTML with ng-
tags) and a controller.
MongoDB MongoDB is a NoSQL database server. As the description implies, Mongo doesn't use SQL, but instead uses parameterized queries. It works a bit differently than database servers you might be used to, like MySQL or Postgres.
These four work together pretty well. MongoDB is used to store the data the application needs to run, Angular is the application itself (running inside the user's browser), Express is used to serve the Angular application and the resources the Angular app needs to run the app, and Node.js is used to run Express.
Realistically, though, "MEAN" is basically a buzzword. Pick the tools that are right for the job, not the ones that make a pretty acronym.