Quickstarters
CRUD Samples
Construyendo una Aplicación CRUD Básica con Cycle.js: Una Guía Completa
41 min
descripción general esta guía te llevará a través de la construcción de una aplicación crud (crear, leer, actualizar y eliminar) completa utilizando cycle js en este tutorial, configurarás un proyecto de back4app titulado basic crud app cyclejs que servirá como un backend robusto para tu aplicación aprenderás a diseñar un modelo de datos escalable, gestionar tus datos a través de la intuitiva aplicación de administración de back4app e integrar tu frontend de cycle js con back4app utilizando llamadas rest/graphql al final, tendrás una aplicación web lista para producción capaz de ejecutar operaciones crud junto con autenticación de usuarios y manejo seguro de datos perspectivas clave construir un sistema crud funcional con un backend confiable ganar experiencia práctica en la arquitectura de un modelo de datos escalable utilizar una herramienta de administración de arrastrar y soltar para una gestión de datos sin problemas integrar un frontend de cycle js con back4app a través de rest/graphql aprender estrategias de implementación, incluyendo la contenedorización con docker requisitos previos antes de comenzar, asegúrate de tener una cuenta de back4app con un proyecto activo si necesitas ayuda, consulta introducción a back4app https //www back4app com/docs/get started/new parse app una configuración de desarrollo de cycle js usa herramientas como create cycle app https //github com/cyclejs community/create cycle app y asegúrate de que node js (versión 14 o posterior) esté instalado familiaridad con javascript, cycle js y apis rest para un repaso, consulta la documentación de cycle js https //cycle js org/ paso 1 – inicialización del proyecto creando un nuevo proyecto en back4app inicia sesión en tu cuenta de back4app presiona el botón “nueva aplicación” en tu panel de control asigna el nombre del proyecto basic crud app cyclejs y sigue las indicaciones de configuración crear nuevo proyecto después de la creación, su proyecto será visible en el panel de control, listo para la configuración y gestión del backend paso 2 – definiendo el esquema de su base de datos estructurando su modelo de datos para esta aplicación crud, crearás varias colecciones para gestionar tus datos a continuación se presentan colecciones de ejemplo con campos esenciales y tipos de datos 1\ colección de artículos esta colección almacenará los detalles de cada artículo campo tipo de dato descripción id objectid identificador único generado automáticamente título cadena el título del artículo descripción cadena un breve resumen del artículo creado en fecha la marca de tiempo de cuando se añadió el artículo actualizado en fecha la marca de tiempo para la última actualización 2\ colección de usuarios esta colección maneja los detalles del usuario y la autenticación campo tipo de dato descripción id objectid identificador único generado automáticamente nombre de usuario cadena el identificador único del usuario correo electrónico cadena la dirección de correo electrónico del usuario hash de contraseña cadena contraseña encriptada para una autenticación segura creado en fecha marca de tiempo de creación de la cuenta actualizado en fecha marca de tiempo para la actualización más reciente puedes definir estas colecciones manualmente a través del panel de control de back4app creando nuevas clases y configurando los campos correspondientes crear nueva clase para agregar campos, elige el tipo de dato, proporciona un nombre de campo, establece opcionalmente un valor predeterminado y marca el campo como obligatorio si es necesario crear columna automatizando la creación de esquemas con el agente ai de back4app el agente ai de back4app simplifica la creación de esquemas generando automáticamente tu modelo de datos basado en un aviso proporcionado esto asegura un diseño de base de datos consistente y eficiente pasos para utilizar el agente ai accede al agente ai inicia sesión en tu panel de back4app y selecciona el agente ai del menú o la configuración del proyecto detalla tus requisitos de datos ingresa un aviso completo que enumere las colecciones necesarias y sus campos revisa e implementa examina el esquema generado automáticamente y aplícalo a tu proyecto ejemplo de aviso 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) esta función no solo ahorra tiempo, sino que también asegura un esquema bien estructurado y optimizado paso 3 – activando la aplicación de administración y gestionando operaciones crud explorando la aplicación de administración la aplicación de administración de back4app proporciona una interfaz sin código, de arrastrar y soltar para una gestión de datos de backend sin esfuerzo optimiza las operaciones crud para tus colecciones habilitando la aplicación de administración abre el menú “más” en tu panel de back4app selecciona “aplicación de administración” y luego haz clic en “habilitar aplicación de administración ” configura tus credenciales de administrador creando tu primer usuario administrador esta acción también inicializará los roles del sistema (por ejemplo, b4aadminuser ) habilitar aplicación de administración después de la activación, inicia sesión en la aplicación de administración para comenzar a gestionar tus colecciones panel de control de la aplicación de administración realizando operaciones crud a través de la aplicación de administración dentro de la aplicación de administración, puedes agregar registros haz clic en el botón “agregar registro” en cualquier colección (por ejemplo, artículos) para insertar nuevas entradas ver/modificar registros selecciona un registro existente para inspeccionar detalles o modificar campos eliminar registros utiliza la opción de eliminar para descartar entradas no deseadas esta interfaz fácil de usar mejora enormemente la gestión y administración de tus datos paso 4 – integrando cycle js con back4app ahora que tu backend está operativo a través de back4app, es hora de integrar tu frontend de cycle js opción utilizando apis rest/graphql nos centraremos en las llamadas a la api rest para interactuar con tu backend a continuación se muestra un ejemplo de componente cycle js que recupera y muestra elementos de su base de datos back4app utilizando el controlador http de cycle ejemplo recuperando y mostrando elementos con cycle js import xs from 'xstream'; import {run} from '@cycle/run'; import {div, h1, ul, li, input, button, makedomdriver} from '@cycle/dom'; import {makehttpdriver} from '@cycle/http'; function main(sources) { // intent capture add item interactions const addclick$ = sources dom select(' add') events('click'); // model make an http request to fetch items const request$ = xs of({ url 'https //parseapi back4app com/classes/items', category 'items', method 'get', headers { 'x parse application id' 'your application id', 'x parse rest api key' 'your rest api key' } }); // intent handle http responses const items$ = sources http select('items') flatten() map(res => res body results); // view render the items list const vdom$ = items$ startwith(\[]) map(items => div(\[ h1('items'), button(' add', 'add item'), ul( items map(item => li(`${item title} — ${item description}`) ) ) ]) ); return { dom vdom$, http request$ }; } const drivers = { dom makedomdriver('#app'), http makehttpdriver() }; run(main, drivers); este código de muestra demuestra cómo usar cycle js para realizar una solicitud http get para recuperar elementos y renderizarlos dinámicamente paso 5 – asegurando su backend aplicando listas de control de acceso (acls) asegura tus objetos definiendo acls por ejemplo, al crear un elemento privado async function createprivateitem(data, owneruser) { const newitem = { title data title, description data description }; // define acl restrict access to the owner only newitem acl = { \[owneruser id] { read true, write true }, ' ' { read false, write false } }; try { const response = await fetch('https //parseapi back4app com/classes/items', { method 'post', headers { 'x parse application id' 'your application id', 'x parse rest api key' 'your rest api key', 'content type' 'application/json' }, body json stringify(newitem) }); const result = await response json(); console log('created item ', result); } catch (error) { console error('error creating item ', error); } } configurando permisos a nivel de clase (clps) dentro del panel de back4app, ajusta los clps para cada colección para asegurar que solo los usuarios autenticados puedan acceder a información sensible paso 6 – implementando la autenticación de usuarios configurando el registro y el inicio de sesión de la cuenta back4app utiliza una clase de usuario para la autenticación utiliza llamadas a la api rest para gestionar el registro y el inicio de sesión de usuarios dentro de tu aplicación cycle js a continuación se muestra un ejemplo de cómo manejar el registro de usuarios async function signupuser(userdata) { try { const response = await fetch('https //parseapi back4app com/users', { method 'post', headers { 'x parse application id' 'your application id', 'x parse rest api key' 'your rest api key', 'content type' 'application/json' }, body json stringify({ username userdata username, password userdata password, email userdata email }) }); const result = await response json(); alert('registration successful!'); return result; } catch (error) { alert('registration error ' + error message); } } puedes replicar patrones similares para el inicio de sesión de usuarios y la gestión de sesiones paso 7 – desplegando tu frontend de cycle js con despliegue web la función de despliegue web de back4app te permite alojar tu aplicación cycle js sin esfuerzo a través de la integración con tu repositorio de github 7 1 preparando tu construcción de producción abre el directorio de tu proyecto en una terminal ejecuta el comando de construcción npm run build esto crea un build directorio con archivos estáticos optimizados confirma la construcción asegúrate de que la build carpeta contenga un index html y directorios de activos relacionados 7 2 organizando y subiendo tu código fuente tu repositorio de git debe incluir toda la fuente de la aplicación cycle js una estructura de archivos de ejemplo basic crud app cyclejs frontend/ ├── node modules/ ├── public/ │ └── index html ├── src/ │ ├── main js │ ├── httpdrivers js │ └── components/ │ ├── itemslist js │ └── auth js ├── package json └── readme md archivo de ejemplo src/main js import xs from 'xstream'; import {run} from '@cycle/run'; import {div, h1, makedomdriver} from '@cycle/dom'; import {makehttpdriver} from '@cycle/http'; import itemslist from ' /components/itemslist'; function main(sources) { const itemsvtree$ = itemslist(sources); const vdom$ = itemsvtree$ map(tree => div(\[ h1('cycle js crud application'), tree ]) ); return { dom vdom$ }; } const drivers = { dom makedomdriver('#app'), http makehttpdriver() }; run(main, drivers); comprometiéndose a github inicializa un repositorio git (si no se ha hecho ya) git init prepara tus archivos git add confirma tu trabajo git commit m "confirmación inicial para el frontend de cycle js" crea un repositorio en github (por ejemplo, basic crud app cyclejs frontend ) envía tu repositorio git remote add origin https //github com/tu nombre de usuario/basic crud app cyclejs frontend git git push u origin main 7 3 vinculando su repositorio con despliegue web acceder al despliegue web inicie sesión en back4app, navegue a su proyecto ( basic crud app cyclejs ) y seleccione la función de despliegue web conectar a github siga las instrucciones para vincular su cuenta de github para que back4app pueda acceder a su repositorio seleccionar el repositorio y la rama elija su repositorio (por ejemplo, basic crud app cyclejs frontend ) y la rama (típicamente main ) 7 4 configuración de despliegue comando de construcción si tu repositorio carece de una carpeta de construcción , especifica un comando de construcción (por ejemplo, npm run build ) directorio de salida establece esto en build para que back4app sepa dónde encontrar los archivos estáticos variables de entorno incluye cualquier clave api o detalle de configuración necesario 7 5 dockerizando tu aplicación cycle js si optas por el despliegue con docker, añade un dockerfile a tu repositorio \# use an official node image for building the app from node 16 alpine as build \# set working directory workdir /app \# copy dependency definitions copy package json / \# install dependencies run npm install \# copy the remaining files copy \# build the cycle js application run npm run build \# use nginx to serve the built files from nginx\ stable alpine copy from=build /app/build /usr/share/nginx/html expose 80 cmd \["nginx", " g", "daemon off;"] selecciona la opción de despliegue de docker en tu configuración de despliegue web si decides contenerizar tu aplicación 7 6 lanzando tu aplicación despliega tu app haz clic en el desplegar botón después de configurar tus ajustes monitorea el despliegue back4app tomará tu código de github, construirá la aplicación (si está configurada) y la desplegará accede a tu aplicación una vez que el despliegue esté completo, back4app proporcionará una url para tu aplicación cycle js en vivo 7 7 probando tu despliegue visita la url desplegada abre la url proporcionada en tu navegador confirma la funcionalidad asegúrate de que todas las rutas y activos se carguen correctamente depura si es necesario utiliza las herramientas de desarrollador del navegador y revisa los registros de despliegue de back4app para solucionar cualquier problema paso 8 – conclusión y mejoras futuras ¡felicidades! has construido con éxito una aplicación crud utilizando cycle js y back4app has configurado un proyecto titulado basic crud app cyclejs , definido tu esquema de base de datos para items y users, y gestionado tus datos a través de la intuitiva admin app además, has integrado tu frontend de cycle js con tu backend utilizando rest/graphql y asegurado tus datos con controles de acceso adecuados próximos pasos expande tu frontend agrega vistas más avanzadas, filtrado o actualizaciones en tiempo real integra características adicionales del backend considera agregar cloud functions, apis de terceros o control de acceso basado en roles aprendizaje adicional explora la documentación de back4app https //www back4app com/docs para obtener más información sobre la optimización del rendimiento y las integraciones personalizadas con esta guía, ahora posees las habilidades para construir un backend crud escalable para tu aplicación cycle js utilizando back4app ¡feliz codificación!