Quickstarters
CRUD Samples
Como construir uma aplicação CRUD com Koa?
37 min
introdução neste guia, você aprenderá como desenvolver uma aplicação crud (criar, ler, atualizar, excluir) usando koa js este tutorial irá guiá lo pelos passos essenciais de gerenciamento de dados e construção de uma api funcional, integrando seu backend koa js com o back4app você começará configurando um projeto back4app chamado basic crud app koajs , que serve como um poderoso backend para sua aplicação depois, você irá projetar um esquema de banco de dados flexível, estabelecendo coleções e definindo campos—seja manualmente ou com a ajuda do agente de ia do back4app essa configuração garante que seus dados estejam organizados para operações crud suaves em seguida, você utilizará o back4app admin app, uma ferramenta sem código, de arrastar e soltar, que simplifica tarefas de gerenciamento de dados, como criar, ler, atualizar e excluir registros finalmente, você configurará seu servidor koa js para interagir com o back4app via apis rest, tudo isso enquanto implementa controles de acesso robustos para proteger seu backend ao final deste tutorial, você terá construído uma aplicação do lado do servidor pronta para produção que não apenas suporta operações crud básicas, mas também inclui autenticação de usuários e manuseio seguro de dados principais conclusões descubra como construir aplicações crud com koa js enquanto aproveita um backend em nuvem confiável obtenha insights sobre como projetar um backend escalável e integrá lo com uma api restful aprenda a usar o intuitivo back4app admin app para simplificar operações crud explore estratégias de implantação, incluindo containerização com docker, para lançar sua aplicação koa js rapidamente pré requisitos antes de começar, certifique se de ter o seguinte uma conta back4app com um projeto ativo confira introdução ao back4app https //www back4app com/docs/get started/new parse app para orientações um ambiente de desenvolvimento node js funcional instale o node js (v14 ou posterior) e configure seu projeto koa js conhecimento básico de javascript, koa js e apis rest revise a documentação do koa js https //koajs com/ se necessário passo 1 – configurando seu projeto back4app criando um novo projeto back4app faça login na sua conta back4app clique no botão “novo app” no seu painel nomeie seu projeto basic crud app koajs e siga as instruções para completar a configuração criar novo projeto uma vez que seu projeto esteja estabelecido, ele será visível no seu painel, fornecendo a estrutura de backend necessária para sua aplicação passo 2 – elaborando o esquema do banco de dados projetando seu modelo de dados para este aplicativo crud, você precisará configurar várias coleções abaixo estão coleções de exemplo com campos e tipos sugeridos para ajudá lo a configurar seu esquema de banco de dados de forma eficaz 1\ coleção de itens esta coleção contém detalhes para cada item campo tipo descrição id objectid identificador único gerado automaticamente título string o título do item descrição string uma breve descrição do item criado em data timestamp quando o item foi criado atualizado em data timestamp da atualização mais recente 2\ coleção de usuários esta coleção gerencia dados de usuários e credenciais de autenticação campo tipo descrição id objectid chave primária gerada automaticamente nome de usuário string um nome de usuário único para o usuário email string endereço de e mail único do usuário hash da senha string securely hashed password criado em data timestamp da criação da conta atualizado em data timestamp da última atualização da conta você pode criar essas coleções através do painel do back4app adicionando uma nova classe para cada uma e definindo as colunas correspondentes criar nova classe você pode definir campos selecionando o tipo apropriado, definindo valores padrão e especificando se o campo é obrigatório criar coluna aproveitando o agente de ia do back4app para configuração de esquema o agente de ia do back4app, disponível em seu painel, pode gerar automaticamente o esquema do seu banco de dados a partir de um prompt detalhado descrevendo suas coleções e campos este recurso acelera a configuração do projeto e garante um esquema consistente para operações crud como usar o agente de ia abra o agente de ia a partir do seu painel do back4app ou nas configurações do projeto forneça um prompt descritivo delineando as coleções e campos que você precisa revise o esquema gerado e aplique a configuração ao seu projeto exemplo de prompt create these collections in my back4app project 1\) collection items \ fields \ id objectid (auto generated) \ title string \ description string \ created at date (auto generated) \ updated at date (auto updated) 2\) collection users \ fields \ id objectid (auto generated) \ username string (unique) \ email string (unique) \ password hash string \ created at date (auto generated) \ updated at date (auto updated) essa abordagem economiza tempo e ajuda a garantir que seu esquema seja consistente e otimizado passo 3 – ativando o app admin e funcionalidade crud visão geral do app admin o app admin do back4app é uma interface amigável que permite gerenciar seus dados de backend sem esforço através de controles de arrastar e soltar esta ferramenta sem código simplifica operações como criar, ler, atualizar e excluir registros ativando o app admin vá para o menu “mais” no seu painel do back4app selecione “app admin” e clique em “ativar app admin ” configure sua conta de administrador inicial; esse processo estabelece funções do sistema como b4aadminuser e prepara coleções do sistema ativar app admin uma vez ativado, faça login no app admin para gerenciar suas coleções e registros painel do app admin dentro do app admin, você pode adicionar novos registros use o botão “adicionar registro” em qualquer coleção (por exemplo, itens) para criar novas entradas visualizar e editar registros selecione um registro para inspecionar seus detalhes ou modificar seus campos remover registros exclua entradas que não são mais necessárias passo 4 – conectando seu backend koa js com back4app agora que seu backend está configurado e gerenciado, é hora de configurar seu servidor koa js para interagir com o back4app usando apis rest com koa js este tutorial demonstrará como usar chamadas de api rest do seu servidor koa js para realizar operações crud em suas coleções do back4app configurando um servidor koa js básico instale o koa js e o middleware necessário npm install koa koa router koa bodyparser node fetch crie o arquivo do servidor (por exemplo, server js ) // server js const koa = require('koa'); const router = require('koa router'); const bodyparser = require('koa bodyparser'); const fetch = require('node fetch'); const app = new koa(); const router = new router(); const application id = 'your application id'; const rest api key = 'your rest api key'; const base url = 'https //parseapi back4app com'; // fetch all items router get('/items', async (ctx) => { try { const response = await fetch(`${base url}/classes/items`, { headers { 'x parse application id' application id, 'x parse rest api key' rest api key } }); const data = await response json(); ctx body = data results; } catch (error) { ctx status = 500; ctx body = { error 'failed to fetch items' }; } }); // create a new item router post('/items', async (ctx) => { const { title, description } = ctx request body; try { const response = await fetch(`${base url}/classes/items`, { method 'post', headers { 'x parse application id' application id, 'x parse rest api key' rest api key, 'content type' 'application/json' }, body json stringify({ title, description }) }); const newitem = await response json(); ctx body = newitem; } catch (error) { ctx status = 500; ctx body = { error 'error creating item' }; } }); // update an item router put('/items/\ id', async (ctx) => { const { id } = ctx params; const { title, description } = ctx request body; try { const response = await fetch(`${base url}/classes/items/${id}`, { method 'put', headers { 'x parse application id' application id, 'x parse rest api key' rest api key, 'content type' 'application/json' }, body json stringify({ title, description }) }); const updateditem = await response json(); ctx body = updateditem; } catch (error) { ctx status = 500; ctx body = { error 'error updating item' }; } }); // delete an item router delete('/items/\ id', async (ctx) => { const { id } = ctx params; try { await fetch(`${base url}/classes/items/${id}`, { method 'delete', headers { 'x parse application id' application id, 'x parse rest api key' rest api key } }); ctx body = { message 'item deleted successfully' }; } catch (error) { ctx status = 500; ctx body = { error 'error deleting item' }; } }); app use(bodyparser()); app use(router routes()) use(router allowedmethods()); const port = process env port || 3000; app listen(port, () => { console log(`server is running on port ${port}`); }); esta configuração fornece a você um servidor koa js que se comunica com o back4app através de chamadas rest, lidando com todas as operações crud passo 5 – protegendo seu backend implementando controles de acesso proteja seus dados aplicando listas de controle de acesso (acls) no nível do objeto por exemplo, ao criar um item privado, defina acls para restringir o acesso async function createsecureitem(itemdata, ownersessiontoken) { try { const response = await fetch(`${base url}/classes/items`, { method 'post', headers { 'x parse application id' application id, 'x parse rest api key' rest api key, 'content type' 'application/json', 'x parse session token' ownersessiontoken }, body json stringify({ title itemdata title, description itemdata description, acl { " " { "read" false, "write" false }, "owner" { "read" true, "write" true } } }) }); const result = await response json(); console log('secure item created ', result); } catch (error) { console error('error creating secure item ', error); } } configurando permissões em nível de classe (clps) dentro do seu painel do back4app, configure clps para cada coleção para estabelecer regras padrão, garantindo que apenas usuários autorizados possam acessar dados sensíveis passo 6 – autenticação de usuário configurando contas de usuário o back4app utiliza uma classe de usuário para gerenciar a autenticação no seu servidor koa js, gerencie o registro e login de usuários interagindo com a api rest do back4app exemplo endpoint de registro de usuário router post('/signup', async (ctx) => { const { username, password, email } = ctx request body; try { const response = await fetch(`${base url}/users`, { method 'post', headers { 'x parse application id' application id, 'x parse rest api key' rest api key, 'content type' 'application/json' }, body json stringify({ username, password, email }) }); const userdata = await response json(); ctx body = userdata; } catch (error) { ctx status = 500; ctx body = { error 'error signing up' }; } }); você pode construir endpoints semelhantes para login e gerenciamento de sessão conforme necessário passo 7 – implantando sua aplicação koa js o recurso de implantação web do back4app permite que você hospede seu servidor koa js vinculando o ao seu repositório do github 7 1 – construa e organize seu projeto certifique se de que seu projeto esteja devidamente estruturado um layout de exemplo pode ser basic crud app koajs/ ├── node modules/ ├── server js ├── package json └── readme md comite todos os seus arquivos de origem em um repositório git comandos git de exemplo git init git add git commit m "initial commit of koa js backend" git remote add origin https //github com/your username/basic crud app koajs git git push u origin main 7 2 – integre com a implantação web do back4app faça login no seu painel do back4app, abra seu projeto basic crud app koajs , e navegue até a seção implantação web conecte sua conta do github se ainda não o fez selecione seu repositório e o branch relevante (por exemplo, main ) 7 3 – configure suas configurações de implantação comando de construção se seu projeto precisar ser construído (por exemplo, transpilar javascript moderno), especifique um comando de construção como npm run build diretório de saída indique a pasta que contém seus arquivos prontos para produção, se aplicável variáveis de ambiente adicione quaisquer variáveis de ambiente necessárias (como chaves de api) na configuração de implantação 7 4 – opcional dockerize seu servidor koa js se você quiser implantar seu aplicativo como um contêiner, inclua um dockerfile em seu repositório \# use the official node js image as a base from node 16 alpine \# set the working directory workdir /app \# copy package files and install dependencies copy package json / run npm install \# copy the rest of the application code copy \# expose the desired port expose 3000 \# run the application cmd \["node", "server js"] 7 5 – lance seu aplicativo clique no deploy botão no back4app monitore os logs de implantação para garantir que seu aplicativo seja construído e implantado com sucesso uma vez finalizado, o back4app fornecerá uma url onde seu servidor koa js é acessível 7 6 – valide sua implantação visite a url fornecida para verificar se seu aplicativo está em execução teste cada endpoint (operações crud, autenticação de usuário) para confirmar a funcionalidade adequada se ocorrerem problemas, revise seus logs e configurações de implantação para solução de problemas passo 8 – conclusão e melhorias futuras ótimo trabalho! você agora construiu uma aplicação crud totalmente operacional usando koa js integrada com back4app seu projeto basic crud app koajs apresenta coleções cuidadosamente projetadas para itens e usuários, um app admin amigável para gerenciamento de dados e um backend seguro próximos passos expanda sua api aprimore seu servidor koa js com rotas adicionais, middleware ou até mesmo recursos em tempo real melhore a autenticação considere implementar autenticação baseada em token, logins sociais ou verificação em múltiplos fatores explore mais documentação confira a documentação do back4app https //www back4app com/docs e guias do koa js https //koajs com/ para tópicos mais avançados e otimizações ao seguir este tutorial, você agora possui as habilidades para construir um backend crud escalável, seguro e eficiente com koa js e back4app aproveite