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
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
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
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
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
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