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 >

Como usar o MERN Stack: um guia completo

Você precisará acessar um banco de banco de dados do MongoDB Atlas para este tutorial. Se você não tiver uma conta, pode se inscrever gratuitamente para acompanhar.

Comece gratuitamente!

Este tutorial mostrará como criar um aplicação MERN de pilha completa — neste caso, um banco de banco de dados de funcionários — com as ferramentas mais atuais disponíveis. Antes de começar, certifique-se de que está familiarizado com os fundamentos do Node.js e React.js. Você também precisará acessar um banco de banco de dados do MongoDB Atlas para este tutorial. O código completo está disponível no repositório do GitHub.

Tabela de conteúdo

O que é a pilha MERN?

A pilha MERN é uma estrutura de desenvolvimento da Web que consiste em MongoDB, Express, React.js e Node.js. É uma das diversas variantes da pilha MEAN.

Ao usar a pilha MERN, você trabalha com React para implementar a camada de apresentação, Express e Node.js para compor a camada intermediária ou de aplicação, e MongoDB para criar a camada de banco de dados.

Neste tutorial de pilha do MERN, utilizaremos essas quatro tecnologias para desenvolver um aplicação básico que seja capaz de registrar as informações dos funcionários e exibi-las usando o front-end do React.

Como começar com a pilha MERN

Para começar, você precisará fazer o seguinte:

Uma ilustração que descreve um tutorial em vídeo.

Se você é um aluno visual, confira a versão em vídeo deste tutorial.

Configurando o projeto

(Fique à vontade para codificar junto ou baixar o código completo do repositório do GitHub.)

A MERN nos permite criar soluções de pilha completa. Portanto, para aproveitar todo o seu potencial, criaremos um projeto de pilha MERN. Para este projeto, criaremos um back-end e um front-end. O front-end será implementado com React e o back-end será implementado com MongoDB, Node.js e Express. Ligaremos para o cliente front-end e o servidor back-end.

Vamos começar criando um diretório vazio: mern. Essa pasta conterá nossas pastas de cliente e servidor.

Em seguida, crie uma pasta para o backend e nomeie-a de servidor. Em seguida, inicializaremos o arquivo .json do pacote usando npm init.

Para usar os módulos ECMAScript, o formato padrão oficialmente suportado para pacote código JavaScript para reutilização, adicionaremos uma linha ao arquivo .json do pacote .

Também instalaremos as dependências.

O comando acima instala três pacotes diferentes:

  • mongodb — o driver de banco de dados de dados do MongoDB que permite que seus aplicativos Node.js se conectem ao banco de banco de dados e trabalhem com dados
  • Express - a estrutura da Web para Node.js (ela facilitará nossa vida)
  • cors — um pacote Node.js que permite o compartilhamento de recursos entre origens

Podemos conferir as dependências instaladas no arquivo .json do pacote. Ela deve listar os pacotes junto com suas versões.

Depois de garantirmos que as dependências foram instaladas com sucesso, criamos um arquivo chamado server.js com o seguinte código:

mern/servidor/servidor.js

Aqui, estamos importando Express e os cors a serem usados. const port = process.env.PORT acessará a variável port do config.env que criaremos a seguir.

Conectando ao MongoDB Atlas

É hora de conectar nosso servidor ao banco de dados. Usaremos o MongoDB Atlas como banco de dados. MongoDB Atlas é um serviço de banco de dados baseado em cloudque oferece segurança e confiabilidade robustas para os dados. O MongoDB Atlas oferece um cluster de nível gratuito que nunca expira e permite que você acesse um subconjunto de recursos e funcionalidades do Atlas.

Siga o guia Introdução ao Atlas para criar uma conta, implantar seu primeiro cluster e localizar a string de conexão do cluster.

Agora que você tem a string de conexão, volte para o diretório do servidor e crie um arquivo config.env. Nesse ponto, atribua a string de conexão a uma nova variável Atlas variável. Quando terminar, seu arquivo deverá ter uma aparência semelhante ao abaixo. Substitua < username >, < password >, < clusterName > e < projectId > pelo nome de usuário, senha, nome do cluster e ID do projeto do seu banco de dados.

mern/servidor/config.env

Crie uma pasta no diretório do servidor chamada db e, dentro dela, um arquivo chamado connection.js. Ali podemos adicionar o seguinte código para conectar ao nosso banco de dados de dados :

MERN/server/db/connection.js

Pontos de extremidade da API do servidor

Banco de dados feito. Servidor concluído. Agora é hora dos endpoints da API. Vamos começar criando uma pasta de rotas e adicionando record.js a ela. Navegue de volta ao diretório "server" e crie o novo diretório e arquivo:

O arquivo routes/record.js também terá as seguintes linhas de código:

MERN/server/routes/record.js

Se você executar o aplicação neste ponto, receberá a seguinte mensagem em seu terminal à medida que a conexão for estabelecida. Observe que estamos usando a funcionalidade de variável de ambiente integrada das versões mais recentes do Node.js.

Isso é tudo para o back-end. Agora, começaremos a trabalhar no front-end.

Configurando o aplicativo React

Para o frontend, usaremos o Vite, uma maneira moderna de criar um aplicação React. Em um novo terminal dentro do diretório mern , vamos configurar isso:

Existem algumas dependências adicionais que serão usadas em nosso projeto. Começaremos com o Tailwind CSS.

Em seguida, editaremos o campo de conteúdo no arquivo tailwind.config.js .

No arquivo src/index.css, precisamos adicionar as diretivas Tailwind e excluir todo o resto.

Por fim, instalaremos oReact-router-dom.

O Tailwind é uma estrutura CSS baseada em utilitários que permite adicionar estilos CSS utilizando nomes de classe predefinidos. E o React Router adiciona roteamento de página do lado do cliente ao React!

Configurando o roteador do React

Dentro de src/main.jsx, adicionaremos o seguinte código:

mern/ cliente/src/main.jsx

Definimos as rotas da página do aplicação na variável roteador e usamos o RouterProvider para manter a interface do usuário sincronizada com o URL. O RouterProvider ajuda com transições contínuas ao alternar entre componentes. Basicamente, ele só recarregará ou atualizará o componente que precisa ser alterado, em vez de atualizar ou recarregar a página inteira. Embora o React Router não seja uma necessidade, ele é importante se você deseja que seu aplicativo seja responsivo.

Criando componentes

Em seguida, vamos criar os componentes que definimos em nossas rotas. Crie uma pasta de componentes dentro da pasta src . Para cada componente que criarmos, adicionaremos um novo .js arquivo dentro da pasta de componentes . Neste caso, adicionaremos Navbar.jsx, RecordList.jsx e ModifyRecord.jsx.

Os instantâneos abaixo mostram como cada arquivo se pareceria.

Navbar.jsx

No componente navbar.js, criaremos uma barra de navegação que nos vinculará aos componentes necessários usando o código a seguir.

MERN/client/src/components/Navbar.jsx

RecordList.jsx

O código a seguir servirá como um componente de visualização de nossos registros. Ele buscará todos os registros em nosso banco de dados de dados por meio de um método GET.

mern/cliente/src/components/RecordList.jsx

Record.jsx

O código a seguir servirá como um componente de formulário para criar ou atualizar registros. Esse componente enviará um comando de criação ou um comando de atualização ao nosso servidor.

mern/cliente/src/components/Record.jsx*

Agora, adicionamos o seguinte ao arquivo src/App.jsx.

mern/cliente/src/App.jsx

Este é o nosso principal componente de layout. Nossa Navbar sempre estará no topo de cada página e a Saída aceitará os componentes filhos que definimos em nossas rotas no arquivo principal.jsx anteriormente.

Conectando o front-end ao back-end

Concluímos o processo de criação de componentes. Também conectamos nosso aplicativo React ao backend usando fetch, que fornece maneiras mais limpas e fáceis de lidar com solicitações de http. Em Record.jsx, anexamos o seguinte código ao bloco onSubmit(e) . Quando uma solicitação POST ou PATCH é enviada ao URL, o fetch adiciona um novo registro ao banco de dados ou atualiza um registro existente no banco de dados.

Também colocamos o seguinte bloco de código para Record.jsx abaixo do bloco do construtor para carregar um registro existente, se ele existir.

Finalmente, recordList.jsx. RecordList.jsx busca os registros do banco de dados, então usaremos o método GET de fetch para recuperar registros do banco de dados. Para isso, adicionamos as seguintes linhas de código acima da função recordList () em recordList.jsx.

Depois de fechar tudo, para iniciar o aplicativo, siga as etapas abaixo:

  • Certifique-se de que o aplicativo do servidor ainda esteja em execução. Se não estiver, inicie-o executando o seguinte comando no diretório do servidor:
  • Em um novo terminal, acesse o diretório do cliente e execute o comando:

Essa é a aparência da página inicial do componente de registro depois de adicionarmos os registros de “Jesse Hall”, “Kushagra Kesav” e “Stanimira Vlaeva” por meio do botão “Criar funcionário”.

É assim que a tela que permite adicionar um funcionário será:

Parabéns por criar seu primeiro aplicação MERN . Para obter mais ideias e conceitos avançados, visite nosso Centro do Desenvolvedor e, se tiver alguma dúvida, publique-a nos fóruns da nossa comunidade.

Primeiros passos com o MongoDB Atlas

Teste gratuitamente
Saiba mais