MERN — это один из многих вариантов стека MEAN (MongoDB Express Angular Node), в котором традиционная интерфейсная среда Angular.js заменена на React.js. Другие варианты включают MEVN (MongoDB, Express, Vue, Node), и на самом деле может работать любой внешний JavaScript-фреймворк.

Что такое стек MERN?

MERN расшифровывается как MongoDB, Express, React, Node после четырех основных технологий, составляющих стек.

MongoDB — база данных документов
Express(.js) — веб-фреймворк Node.js
React(.js) — Фреймворк JavaScript на стороне клиента
Node(.js) — ведущий веб-сервер JavaScript

Express и Node образуют средний уровень (приложение). Express.js — это серверная веб-инфраструктура, а Node.js — популярная и мощная серверная платформа JavaScript. Какой бы формат вы ни выбрали, ME(RVA)N — идеальный подход к работе с JavaScript и JSON.

Как работает стек MERN?

Архитектура MERN позволяет легко построить трехуровневую архитектуру (внешний интерфейс, серверная часть, база данных) полностью с использованием JavaScript и JSON.

Внешний интерфейс React.js

Верхний уровень стека MERN — это React.js, декларативный JavaScript-фреймворк для создания динамических клиентских приложений в HTML. React позволяет создавать сложные интерфейсы с помощью простых компонентов, подключаться к данным на внутреннем сервере и отображать их в виде HTML.

Сильная сторона React — управление управляемыми данными интерфейсами с сохранением состояния с минимальным кодом и минимальной трудоемкостью, и в нем есть все прибамбасы, которые вы ожидаете от современной веб-инфраструктуры: отличная поддержка форм, обработка ошибок, события, списки и многое другое. .

Уровни серверов Express.js и Node.js

Следующим уровнем ниже является серверная среда Express.js, работающая внутри сервера Node.js. Express.js позиционирует себя как «быстрый, не интерпретирующий, минимальный веб-фреймворк для Node.js», и это именно так. Express.js имеет мощную модель маршрутизации URL-адресов (сопоставление входящих URL-адресов с функциями сервера) и обработки HTTP-запросов и ответов.

Отправляя XML-запросы HTTP (XHR) или GET- или POST-запросы из внешнего интерфейса React.js, вы можете подключаться к функциям Express.js, обеспечивающим работу вашего приложения. Эти функции, в свою очередь, используют драйверы MongoDB Node.js для доступа и обновления данных в вашей базе данных MongoDB либо с помощью обратных вызовов, либо с помощью промисов.

Уровень базы данных MongoDB

Если ваше приложение хранит какие-либо данные (профили пользователей, контент, комментарии, загрузки, события и т. д.), вам нужна база данных, с которой легко работать, например React, Express и Node.

Вот где на помощь приходит MongoDB: документы JSON, созданные во внешнем интерфейсе React.js, могут быть отправлены на сервер Express.js, где они могут быть обработаны и (при условии, что они действительны) сохранены непосредственно в MongoDB для последующего извлечения. Опять же, если вы строите в облаке, вам стоит обратить внимание на Atlas. Если вы хотите настроить свой собственный стек MERN, читайте дальше!

Является ли MERN комплексным решением?

Да, MERN — это полный стек, соответствующий традиционному трехуровневому архитектурному шаблону, включая уровень внешнего интерфейса (React.js), уровень приложений (Express.js и Node.js) и уровень базы данных (MongoDB).

Почему стоит выбрать стек MERN?

Начнем с MongoDB, базы данных документов в основе стека MERN. MongoDB изначально был разработан для хранения данных JSON (технически он использует двоичную версию JSON, называемую BSON), и все, от интерфейса командной строки до языка запросов (MQL или MongoDB Query Language), построено на JSON и JavaScript. .

MongoDB очень хорошо работает с Node.js и позволяет невероятно легко хранить, обрабатывать и представлять данные JSON на каждом уровне вашего приложения. Для облачных приложений MongoDB Atlas позволяет сделать это так же просто, как несколько нажатий кнопок, предоставляя вам автоматически масштабируемый кластер MongoDB в облачном провайдере по вашему выбору.

Приложения Express.js (работающие на Node.js) и React.js JavaScript/JSON делают MERN полным стеком, ну, полным. Express.js — это серверная платформа приложений, которая упаковывает HTTP-запросы и ответы и упрощает сопоставление URL-адресов с серверными функциями. React.js — это интерфейсный JavaScript-фреймворк для создания интерактивных пользовательских интерфейсов в HTML и взаимодействия с удаленными серверами.

Комбинация означает, что данные JSON естественным образом передаются от начала к концу, что позволяет быстро создавать и достаточно легко отлаживать. Кроме того, вам нужно знать только один язык программирования и структуру документа JSON, чтобы понять всю систему!

MERN — это стек, который выбирают современные веб-разработчики, которые хотят идти в ногу со временем, особенно те, у кого есть опыт работы с React.js.

Варианты использования МЕРН

Как и в любом веб-стеке, вы можете создавать в MERN все, что захотите, хотя он идеально подходит для сценариев использования с большим количеством JSON, облачных приложений и динамических веб-интерфейсов.

Примеры включают управление рабочим процессом, сбор новостей, приложения и календари, а также интерактивные форумы/социальные продукты — и все, что только можно придумать!