AnúncioApresentando MongoDB 8.0, o MongoDB mais rápido de todos os tempos! Leia mais >
AnúncioVoyage AI se junta ao MongoDB para impulsionar aplicativos de AI mais precisos e confiáveis no Atlas. Saiba mais >

Explicações sobre a MERN stack

O MERN é uma das diversas variações da MEAN stack (MongoDB, Express, Angular, Node), em que o framework de front-end tradicional Angular.js é substituído pelo React.js. Outras variantes incluem MEVN (MongoDB, Express, Vue, Node) e praticamente qualquer framework JavaScript de front-end.

Tudo pronto para dar o próximo passo? Clique abaixo para criar sua conta grátis do MongoDB Atlas e consulte nosso tutorial da MERN stack para saber como desenvolver um aplicativo MERN full stack em pouco tempo.

Comece grátis

Pilha de tecnologia

Antes de mergulhar na pilha MERN, vamos entender rapidamente o que é uma pilha de tecnologia. Uma pilha de tecnologia é um conjunto de tecnologias que você escolhe e usa para criar um aplicativo da Web, aplicativo móvel ou aplicativo semelhante. Uma boa pilha de tecnologia deve proporcionar uma experiência perfeita ao usuário, além de ser escalável e econômica. Uma pilha de tecnologia típica contém front-end, back-end e banco de dados e é conhecida como uma pilha de tecnologia completa.

Normalmente, as tecnologias básicas de front-end ou interface do usuário permanecem as mesmas, ou seja, HTML, CSS e JavaScript. Dependendo dos requisitos do projeto , você pode usar bibliotecas e estruturas, como React ou Angular, que são criadas sobre essas tecnologias de UI.

O backend consiste em um servidor, onde reside sua lógica de aplicação . Você pode escrever a lógica do aplicação em uma ou mais linguagens de programação, como JavaScript, Java, Python, ou usar estruturas como Django, Spring e Express.js. Para executar os programas, seu aplicação precisa de um tempo de execução como Node.js, JRE (Java Runtime Environment).

O banco de dados de dados é o centro de armazenamento, onde todos os dados relacionados ao aplicação são armazenados. Você pode optar por armazenar seus dados em uma estrutura tabular (usando sistemas de banco de dados relacionais) ou não relacionais, também chamados de NoSQL, como estrutura de documentos, estrutura de gráficos etc., e selecionar o banco de dados de acordo. Alguns exemplos de bancos de dados são MongoDB, Oracle, MySQL.

O que é a pilha MERN?

Uma pilha de tecnologia pode ser personalizada (os desenvolvedores podem escolher as tecnologias dependendo dos requisitos do projeto ) ou pré-construída (onde as tecnologias foram pré-decisas).

O MERN é uma pilha de tecnologia pré-criada com base em tecnologias JavaScript. MERN significa MongoDB, Express, Reacte Node, em homenagem às quatro principais tecnologias que compõem a pilha.

  • MongoDB — banco de dados de documentos
  • Express(.js) — Framework web Node.js
  • React(.js) — uma estrutura JavaScript do lado do cliente
  • Node(.js) - o principal servidor da Web JavaScript (tempo de execução)

Express e Node compõem a camada intermediária (aplicação). O Express.js é um framework web do lado do servidor e o Node.js é a popular e poderosa plataforma JavaScript para servidor . Independentemente da variante que você escolher, o ME(RVA)N é a abordagem ideal para trabalhar com JavaScript e JSON, em todo o caminho.

Como a pilha MERN funciona?

A arquitetura MERN permite que você construa facilmente uma arquitetura de três camadas (front-end, back-end, banco de dados de dados) inteiramente usando JavaScript e JSON.

React.js front-end

O nível superior da pilha MERN é React.js, a estrutura JavaScript declarativa para criar aplicativos dinâmicos do lado do cliente em HTML. O React permite criar interfaces complexas por meio de componentes simples, conectá-las aos dados em seu servidor de back-end e renderizá-las como HTML.

O ponto forte do React é lidar com interfaces com estado e orientadas por dados com o mínimo de código e complicações, e ele tem todos os recursos que você espera de uma estrutura moderna da Web: ótimo suporte para formulários, tratamento de erros, eventos, listas e muito mais.

Camada do servidor Express.js e Node.js

O próximo nível abaixo é a estrutura do lado do servidor Express.js, executada dentro de um servidor Node.js. O Express.js se apresenta como uma "estrutura da Web rápida, sem opiniões e minimalista para o Node.js", e é exatamente isso que ele é. O Express.js tem modelos avançados para roteamento de URL (correspondência de um URL de entrada com uma função de servidor) e tratamento de solicitações e respostas HTTP.

Ao fazer solicitações HTTP HTTP (XHRs), GETs ou POSTs a partir do front-end do React.js, você pode se conectar às funções do Express.js que alimentam o seu aplicação. Essas funções, por sua vez, usam os drivers do Node.js do MongoDB para acessar e atualizar dados em seu banco de banco de dados MongoDB .

Camada do banco de dados do MongoDB

Se o seu aplicação armazenar quaisquer dados (perfis de usuário, conteúdo, comentários, carregamentos, eventos etc.), então você vai querer um banco de dados de dados que seja tão fácil de trabalhar quanto React, Express e Node.js

É aí que entra o MongoDB: Os documentos JSON criados em seu front-end React.js podem ser enviados para o servidor Express.js, onde podem ser processados e (supondo que sejam válidos) armazenados diretamente no MongoDB para recuperação posterior. Mais uma vez, se estiver construindo no site cloud, você vai querer dar uma olhada em MongoDB Atlas. Se você deseja configurar sua própria pilha MERN, continue lendo!

Exemplo de uma solicitação/resposta simples usando a pilha MERN

Uma solicitação HTTP típica (de um cliente) executa uma das 4 operações - POST, GET, PUT, DELETE correspondentes às quatro operações de banco de dados de dados - Criar, Ler, Atualizar e Excluir (CRUD), respectivamente. Para atender a essas solicitações, o Express.js fornece objetos de solicitação e resposta que armazenam os parâmetros necessários. O HTTPrequest armazena os dados fornecidos pelo usuário final e a resposta HTTP armazena os dados que são recuperados do banco de banco de dados.

Com o driver do MongoDB Node.js , você pode conectar facilmente suas implementações do MongoDB ao aplicação em algumas etapas simples.

Uma das funcionalidades mais importantes da pilha MERN é que todas as tecnologias armazenam dados no mesmo formato.

A camada front-end, React, armazena dados como um objeto JavaScript, a camada de backend (aplicação) usa código JavaScript e a camada de dados MongoDB armazena dados no formato BSON (Binary JavaScript ON). Express converte dados entre JS e JSON usando o arquivo .json() .

O Node.js permite que os desenvolvedores escrevam lógica de aplicação de backend (do lado do servidor) em JavaScript. Embora o Node.js forneça módulos http principais, escrever o mesmo no Express fornece uma experiência de código mais limpa. O Express também oferece recursos avançados de roteamento para obter os dados necessários do endpoint correto, outro local em que os desenvolvedores não precisam escrever código explícito para roteamento.

Como o código é escrito na mesma linguagem (JavaScript) de ponta a ponta, muito tempo que, de outra forma, seria gasto em conversões durante a transição de camada para camada, é economizado.

Digamos que um cliente (cliente) queira atualizar seu número de celular por meio de um portal online. O frontend, construído usando React.js, teria um formulário onde o usuário pode inserir o número de celular. O React usa o gancho "useState" para definir o número de celular inserido pelo cliente no parâmetro de solicitação.

O código Express.js pega o número de celular da solicitação http put, mapeia para o esquema do modelo de dados do aplicação e aplica o método correspondente (por exemplo, findByIdAndUpdate()) para executar a operação de atualização. Em seguida, a resposta é enviada pelo objeto de resposta http com uma mensagem de sucesso/falha.

Um exemplo completo está disponível na página de tutorial da pilha MERN .

Pilha MERN versus desenvolvimento de pilha completa

A pilha MERN é um tipo de pilha completa, em que as camadas de tecnologia são predefinidas. Um desenvolvedor de pilha completa tem uma curva de aprendizado maior, pois precisa ser habilidoso em várias tecnologias, enquanto um desenvolvedor de pilha MERN precisa conhecer apenas as tecnologias correspondentes. Algumas diferenças importantes abaixo o ajudarão a escolher entre uma pilha completa personalizada e uma pilha MERN, dependendo dos requisitos do seu projeto:

MERN stack

  • Pilha de tecnologias predefinida que se complementam bem
  • O foco está no JavaScript e em tecnologias e frameworks baseados no JavaScript
  • Método de desenvolvimento simplificado e unificado
  • Promove o reaproveitamento de código devido a componentes escritos em uma só linguagem que podem ser reutilizados

Full stack

  • Os designers escolhem tecnologias diferentes de acordo com os requisitos de cada projeto
  • Requer um conjunto mais amplo de habilidades que devem ser aprendidas dependendo do projeto
  • Permite mais flexibilidade na escolha de ferramentas e frameworks para desenvolvimento
  • Promove flexibilidade e versatilidade, pois os desenvolvedores podem lidar com aspectos diferentes do aplicativo

Quando é ideal escolher a MERN stack?

Quando o seu projeto tem cronogramas rígidos e requisitos bem definidos, a MERN stack é a escolha ideal porque economiza tempo e custo. Além disso, ela ajuda os desenvolvedores a se integrarem em pouco tempo, pois eles precisam se concentrar em aprender apenas uma tecnologia. A manutenção de longo prazo de um projeto pode ser mais fácil com a MERN stack devido à abordagem estruturada e bem estabelecida e à documentação extensa.

A MERN stack é ideal para qualquer caso de uso possível ou requisito de projeto, já que todos os componentes (MERN) oferecem funcionalidades e recursos avançados. O único cenário em que pode fazer sentido não optar pela MERN stack é quando for necessário usar tecnologias diferentes do JavaScript.

Por que escolher a MERN stack?

Vamos começar pelo MongoDB, o banco de dados de documentos que é a essência da MERN stack. O MongoDB foi projetado para armazenar dados JSON de modo nativo (tecnicamente usa uma versão binária do JSON chamada BSON). Tudo, desde a interface da linha de comando até a linguagem de query, é baseado em JSON e JavaScript.

O MongoDB funciona muito bem com o Node.js e torna o armazenamento, a manipulação e a representação de dados JSON em todas as camadas do seu aplicativo incrivelmente fácil. Para aplicativos nativos da nuvem, o MongoDB Atlas torna isso ainda mais fácil: com apenas alguns cliques, você tem acesso a um cluster do MongoDB com dimensionamento automático no provedor de nuvem da sua escolha.

O Express.js (em execução no Node.js) e o React.js são os frameworks que fazem a pilha do MERN para aplicativos JavaScript/JSON ser considerada uma full stack. O Express.js é um framework de aplicativo no lado do servidor que encapsula solicitações e respostas HTTP e facilita o mapeamento de URLs para funções a serem executadas no servidor. O React.js é um framework JavaScript front-end para criar interfaces de usuário interativas em HTML e estabelecer comunicação com um servidor remoto.

Com essa combinação, os dados JSON fluem naturalmente do front-end para o back-end, o que torna o desenvolvimento mais fácil e simplifica razoavelmente o processo de depuração. Outro benefício excelente é que basta conhecer uma linguagem de programação e a estrutura de documentos JSON para entender todo o sistema.

Hoje em dia, o MERN é a stack preferida dos desenvolvedores web que desejam avançar com rapidez, especialmente para os que já têm experiência com React.js.

Casos de uso do MERN

Como qualquer stack web, você pode desenvolver o que quiser usando o MERN, apesar de suas características o tornarem mais útil para interfaces web dinâmicas que façam uso pesado de JSON e sejam nativas da nuvem. Por exemplo, é possível usar o MERN para gerenciamento de fluxo de trabalho, agregação de notícias, aplicativos de tarefas e calendários, fóruns interativos ou produtos sociais – a sua imaginação é o limite!

Resumo

A MERN stack tem como objetivo simplificar toda a pilha de tecnologia, pois as tecnologia que usa já são predeterminadas. Isso simplifica o trabalhos dos desenvolvedores e designers, que não precisam se preocupar em escolher qual tecnologia empregar para cada caso de negócios. Além disso, eles não precisam aprender tecnologias diferentes, contratar especialistas em cada uma delas nem colocar o ônus de dominar tudo sobre uma única pessoa. Com uma MERN stack, qualquer pessoa pode criar aplicativos simples ou complexos, bastando apenas conhecer algumas poucas tecnologias. Isso acelera a produção e diminui o custo geral, sem comprometer a escalabilidade, o desempenho e a segurança.

Perguntas frequentes

Comece a usar o MongoDB Atlas sem custo

Execute o MongoDB na nuvem gratuitamente com o MongoDB Atlas. Não requer cartão de crédito.
Comece grátis!