Quickstarters
CRUD Samples
如何使用 Koa 构建 CRUD 应用?
35 分
介绍 在本指南中,您将学习如何使用 koa js 开发一个 crud(创建、读取、更新、删除)应用程序。 本教程将引导您完成管理数据和构建功能性 api 的基本步骤,通过将您的 koa js 后端与 back4app 集成。您将首先设置一个名为 basic crud app koajs 的 back4app 项目,它为您的应用程序提供强大的后端支持。 之后,您将通过建立集合和定义字段来设计一个灵活的数据库架构——可以手动进行,也可以借助 back4app ai agent。这种设置确保您的数据组织良好,以便顺利进行 crud 操作。 接下来,您将利用 back4app 管理应用程序,这是一个无代码、拖放工具,简化了创建、读取、更新和删除记录等数据管理任务。 最后,您将配置您的 koa js 服务器,通过 rest api 与 back4app 进行交互,同时实施强大的访问控制以保护您的后端。 在本教程结束时,您将构建一个生产就绪的服务器端应用程序,它不仅支持基本的 crud 操作,还包括用户身份验证和安全的数据处理。 关键要点 了解如何使用 koa js 构建 crud 应用程序,同时利用可靠的云后端。 深入了解如何设计可扩展的后端并将其与 restful api 集成。 学习使用直观的 back4app 管理应用程序来简化 crud 操作。 探索部署策略,包括使用 docker 进行容器化,以快速启动您的 koa js 应用程序。 先决条件 在开始之前,请确保您具备以下条件 一个具有活动项目的 back4app 账户。 查看 back4app 入门指南 https //www back4app com/docs/get started/new parse app 以获取指导。 一个可工作的 node js 开发环境。 安装 node js(v14 或更高版本)并设置您的 koa js 项目。 基本的 javascript、koa js 和 rest api 知识。 如有需要,请查看 koa js 文档 https //koajs com/ 。 步骤 1 – 设置您的 back4app 项目 创建一个新的 back4app 项目 登录到您的 back4app 账户。 在您的仪表板上点击“新应用”按钮。 为您的项目命名 basic crud app koajs 并按照说明完成设置。 创建新项目 一旦您的项目建立,它将在您的仪表板上可见,为您的应用程序提供所需的后端框架。 步骤 2 – 制作数据库模式 设计您的数据模型 对于这个crud应用程序,您需要设置几个集合。以下是示例集合及建议的字段和类型,以帮助您有效配置数据库架构。 1\ 项目集合 此集合包含每个项目的详细信息。 字段 类型 描述 id 对象id 自动生成的唯一标识符。 标题 字符串 该项目的标题。 描述 字符串 该项目的简短描述。 创建于 日期 项目创建时的时间戳。 更新于 日期 最近更新的时间戳。 2\ 用户集合 此集合管理用户数据和身份验证凭据。 字段 类型 描述 id 对象id 自动生成的主键。 用户名 字符串 用户的唯一用户名。 电子邮件 字符串 用户的唯一电子邮件地址。 密码哈希 字符串 安全哈希密码。 创建于 日期 账户创建的时间戳。 更新于 日期 上次账户更新的时间戳。 您可以通过 back4app 仪表板创建这些集合,为每个集合添加一个新类并定义相应的列。 创建新类 您可以通过选择适当的类型、设置默认值以及指定字段是否为必填项来定义字段。 创建列 利用 back4app ai 代理进行模式设置 back4app ai 代理可在您的仪表板中使用,可以根据详细的提示自动生成您的数据库模式,该提示描述了您的集合和字段。此功能加快了项目设置,并确保 crud 操作的一致模式。 如何使用 ai 代理: 从您的 back4app 仪表板或项目设置中打开 ai 代理。 提供一个描述性的提示,概述您所需的集合和字段。 查看生成的模式并将配置应用到您的项目中。 示例提示 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) 这种方法节省时间,并有助于确保您的架构既一致又优化。 步骤 3 – 激活管理员应用程序和 crud 功能 管理员应用程序概述 back4app 管理员应用程序是一个用户友好的界面,让您通过拖放控件轻松管理后端数据。这个无代码工具简化了创建、读取、更新和删除记录等操作。 激活管理员应用程序 前往您的 back4app 仪表板中的“更多”菜单。 选择“管理员应用程序”并点击 “启用管理员应用程序。” 设置您的初始管理员帐户;此过程建立系统角色,如 b4aadminuser 并准备系统集合。 启用管理员应用程序 激活后,登录管理员应用程序以管理您的集合和记录。 管理员应用程序仪表板 在管理员应用程序中,您可以: 添加新记录: 在任何集合(例如,项目)中使用“添加记录”按钮创建新条目。 查看和编辑记录: 选择一条记录以检查其详细信息或修改其字段。 删除记录: 删除不再需要的条目。 步骤 4 – 将您的 koa js 后端与 back4app 连接 现在您的后端已配置并管理,是时候设置您的 koa js 服务器以与 back4app 交互。 使用 koa js 的 rest api 本教程将演示如何从您的 koa js 服务器使用 rest api 调用对 back4app 集合执行 crud 操作。 设置基本的 koa js 服务器 安装 koa js 和必要的中间件: npm install koa koa router koa bodyparser node fetch 创建服务器文件(例如, 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}`); }); 此设置为您提供了一个 koa js 服务器,通过 rest 调用与 back4app 进行通信,处理所有 crud 操作。 步骤 5 – 保护您的后端 实施访问控制 通过在对象级别应用访问控制列表 (acl),保护您的数据。例如,在创建私有项目时,设置 acl 以限制访问: 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); } } 设置类级权限 (clps) 在您的 back4app 控制面板中,为每个集合配置 clps,以建立默认规则,确保只有授权用户可以访问敏感数据。 步骤 6 – 用户认证 配置用户账户 back4app 使用用户类来处理认证。在您的 koa js 服务器中,通过与 back4app rest api 接口来管理用户注册和登录。 示例:用户注册端点 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' }; } }); 您可以根据需要构建类似的端点用于登录和会话管理。 步骤 7 – 部署您的 koa js 应用程序 back4app 的 web 部署功能允许您通过将其链接到您的 github 存储库来托管您的 koa js 服务器。 7 1 – 构建和组织您的项目 确保您的项目结构正确。一个示例布局可能是: basic crud app koajs/ ├── node modules/ ├── server js ├── package json └── readme md 将所有源文件提交到 git 存储库。 示例 git 命令: 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 – 与 back4app web 部署集成 登录到您的 back4app 控制面板,打开您的项目 basic crud app koajs , 并导航到 web deployment 部分。 如果您尚未连接,请连接您的 github 账户。 选择您的存储库和相关分支(例如, main )。 7 3 – 配置您的部署设置 构建命令: 如果您的项目需要构建(例如,转译现代 javascript),请指定构建命令,例如 npm run build 。 输出目录: 指明包含您生产就绪文件的文件夹(如适用)。 环境变量: 在部署配置中添加任何必要的环境变量(如 api 密钥)。 7 4 – 可选:将您的 koa js 服务器容器化 如果您想将应用程序作为容器部署,请在您的存储库中包含一个 dockerfile : \# 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 – 启动您的应用程序 点击 部署 按钮在 back4app 上 监控部署日志以确保您的应用程序成功构建和部署 完成后,back4app 将提供一个 url,您可以通过该 url 访问您的 koa js 服务器 7 6 – 验证您的部署 访问提供的 url 以验证您的应用程序是否正在运行 测试每个端点(crud 操作,用户身份验证)以确认功能正常 如果出现问题,请检查您的日志和部署设置以进行故障排除 第8步 – 结论与未来增强 干得好!你现在已经使用 koa js 和 back4app 构建了一个完全可操作的 crud 应用程序。 你的项目 basic crud app koajs 具有精心设计的项目和用户集合,一个用户友好的管理应用程序用于数据管理,以及一个安全的后端。 下一步: 扩展你的 api: 通过额外的路由、中间件,甚至实时功能来增强你的 koa js 服务器。 改善认证: 考虑实施基于令牌的认证、社交登录或多因素验证。 进一步探索文档: 查看 back4app 文档 https //www back4app com/docs 和 koa js 指南 https //koajs com/ 以获取更多高级主题和优化。 通过遵循本教程,你现在具备了使用 koa js 和 back4app 构建可扩展、安全和高效的 crud 后端的技能。享受吧