Nowoczesne aplikacje internetowe budowane w oparciu o sprawdzone technologie coraz częściej wykorzystują tzw. stos MEAN - MongoDB, Express, Angularjs Node.js - zestaw różnych technologi, które łączy jeden język programowania JavaScript (a dokładniej - ECMAScript :) ). Dlaczego warto budować aplikacje w oparciu o stos MEAN ? Do czego służą poszczególne komponenty ?
Node.js Link to heading
Node.js jest używany jest do budowania aplikacji po stronie serwera. Oparty jest na silniku V8 i wykorzystuje nieblokujące operacje wejścia / wyjścia oraz asynchroniczny mechanizm zdarzeń.
Express Link to heading
Express jest framework’iem dla aplikacji serwera zbudowanego w oparciu o Node.js, który upraszcza wiele operacji i przyśpiesza implementację kodu serwera.
MongoDB Link to heading
MongoDB jest bazą danych anych NoSQL, która jest skalowalna oraz niezwykle wydajna. Możliwość wykorzystania języka JavaScript do zapytań do bazy upraszcza budowanie aplikacji. Dane przechowywane są w postaci dokumentów i można je odczytać jako obiekty JSON / BSON z poziomu aplikacji.
AngularJS Link to heading
AngularJS wykorzystywany jest do budowy kodu systemu po stronie klienta (przeglądarki) i umożliwia implementowanie dynamicznych aplikacji internetowych w postaci jednej strony (tzw. Single-page application). Aplikacje budowanie w oparciu o AngularJS można projektować wg modelu MVC (ang. Model-View-Controller), gdzie modelem są dane w bazie MongoDB, widokiem kod HTML i CSS z elementami AngularJS, a kontrolerem kod AngularJS.
MEAN.IO Link to heading
Projektując nowoczesną aplikację internetową można samodzielnie zbudować strukturę kodu z każdym komponentem albo skorzystać z framework’a MEAN.IO, który upraszcza przede wszystkim wstępny etap budowy i łączenie poszczególnych komponentów. W celu rozpoczęcia pracy z MEAN.IO należy pobrać CLI oraz utworzyć pierwszą aplikację:
bash-3.2$ sudo npm install -g mean-cli
...
bash-3.2$ mean init hello-mean
? What would you name your mean app? hello-mean
Cloning branch: master into destination folder: hello-mean
git clone --depth 1 -bmaster https://github.com/linnovate/mean.git "hello-mean"
Cloning into 'hello-mean'...
Added the "remote" upstream origin
Renamed meanStarter to: hello-mean/packages/custom/hello-mean (this is where your put your changes).
If you need additional modularity create your own package with the mean package command
Do you want to set up an admin user?
? Yes N
#############################################
All Done! - Now lets install the dependencies...
Install node package dependencies:
$ cd hello-mean && npm install
Bower install should be triggered for client side dependencies.
If it did not run invoke it manually...
$ cd hello-mean && bower install
Run the app by running:
$ cd hello-mean and then run..
$ gulp
bash-3.2$ cd hello-mean && npm install
bash-3.2$ mongod
bash-3.2$ gulp