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.