Quickstarters
CRUD Samples
如何构建一个 CRUD 应用程序与 Node.js?
31 分
概述 在本教程中,您将学习如何使用 node js 开发一个完整的 crud(创建、读取、更新、删除)应用程序。 我们将利用 back4app 作为我们的后端服务,以简化数据管理。 本指南将引导您配置 back4app 项目,设计动态数据模型,并使用 node js 实现 crud 操作。 最初,您将设置一个名为 basic crud app node 的 back4app 项目,该项目提供强大的非关系数据存储解决方案。 然后,您将通过手动定义集合和字段或利用 back4app ai agent 来设计您的数据架构。 接下来,您将通过 back4app 管理员应用程序管理您的后端——一个用户友好的拖放界面,用于数据操作。 最后,您将使用 parse javascript sdk(或根据需要使用 rest/graphql api)将您的 node js 应用程序与 back4app 集成,同时确保安全的访问控制。 在本教程结束时,您将构建一个生产就绪的 node js 应用程序,能够执行基本的 crud 操作以及用户身份验证和数据安全。 您将学习什么 如何创建一个基于 node js 的 crud 应用程序,并具有有效的低代码后端。 设计可扩展后端的策略,并将其与您的 node js 应用程序连接。 如何利用 back4app 管理应用程序来简化创建、读取、更新和删除操作。 部署技术,包括 docker 容器化,以高效启动您的 node js 应用程序。 先决条件 在开始之前,请确保您拥有: 一个具有新配置项目的 back4app 账户。 需要帮助?访问 开始使用 back4app https //www back4app com/docs/get started/new parse app 。 一个 node js 开发环境。 使用像 visual studio code 这样的代码编辑器,并确保安装 node js(v14 或更高版本)。 node js、异步编程和 rest api 的基本知识。 如有需要,请参考 node js 文档 https //nodejs org/en/docs/ 。 步骤 1 – 设置您的项目 创建一个新的 back4app 项目 登录到您的 back4app 账户。 点击您的仪表板上的“新应用”按钮 。 命名您的项目: basic crud app node 并按照屏幕上的提示完成设置。 创建新项目 创建后,您的项目将出现在仪表板上,准备进行后端配置。 步骤 2 – 构建您的数据架构 定义您的数据结构 对于这个 crud 应用程序,您将在 back4app 项目中创建几个集合。以下是基本 crud 功能所需的关键集合和字段的示例。 1\ 项目集合 此集合存储有关每个项目的详细信息。 字段 类型 描述 id 对象id 自动生成的唯一标识符。 标题 字符串 物品的名称。 描述 字符串 该项目的简要概述。 创建于 日期 标记项目添加时间的时间戳。 更新时间 日期 标记最后更新的时间戳。 2\ 用户集合 此集合处理用户凭据和身份验证数据。 字段 类型 描述 id 对象id 自动生成的唯一标识符。 用户名 字符串 用户的唯一名称。 电子邮件 字符串 用户的唯一电子邮件地址。 密码哈希 字符串 用于安全认证的哈希密码。 创建于 日期 账户创建的时间戳。 更新时间 日期 账户更新的时间戳。 您可以通过 back4app 仪表板手动创建这些集合和字段。 创建新类 您可以通过选择数据类型、命名字段、设置默认值并将其标记为必填来添加列。 创建列 利用 back4app ai 代理进行模式生成 back4app ai 代理通过根据您的描述自动生成数据模型来简化模式设置。这加快了配置速度,并确保您的数据结构支持所有 crud 操作。 如何使用 ai 代理: 打开 ai 代理: 从您的 back4app 项目设置中访问 ai 代理。 概述您的数据模式: 描述您需要的集合和字段。 审查并应用: ai 代理将建议一个模式。审查提案并应用更改。 示例提示 create the following collections in my back4app project 1\) collection items \ fields \ id objectid (auto generated) \ title string \ description string \ createdat date (auto generated) \ updatedat date (auto updated) 2\) collection users \ fields \ id objectid (auto generated) \ username string (unique) \ email string (unique) \ passwordhash string \ createdat date (auto generated) \ updatedat date (auto updated) 此方法确保数据模型的一致性和优化。 步骤 3 – 启用管理员应用程序并执行 crud 操作 管理员应用程序概述 back4app 管理员应用程序提供了一个无代码界面,用于管理您的后端数据。其拖放设计使得执行 crud 任务(如添加、查看、更新和删除记录)变得简单。 激活管理员应用程序 前往您的 back4app 仪表板中的 “更多” 部分 。 选择 “管理员应用程序” 并点击 “启用管理员应用程序。” 通过设置您的初始管理员帐户来配置您的管理员凭据 。此过程还将创建角色(例如, b4aadminuser ) 和系统类。 启用管理员应用程序 激活后,登录管理员应用程序以管理您的数据。 管理员应用程序仪表板 使用管理员应用程序管理 crud 操作 在管理应用程序中,您可以: 插入记录: 在集合中使用“添加记录”按钮(例如,项目)以创建新条目。 查看和编辑记录: 点击任何记录以检查其详细信息或更新其字段。 删除记录: 删除不再需要的条目。 这个用户友好的界面大大简化了数据管理。 步骤 4 – 将您的 node js 应用程序与 back4app 连接 在您的后端设置完成后,是时候将您的 node js 应用程序连接到 back4app。 选项 a:使用 parse javascript sdk 安装 parse javascript sdk 在您的项目目录中运行以下命令 npm install parse 在您的 node js 应用程序中初始化 parse 创建一个配置文件(例如, parseconfig js ) // parseconfig js const parse = require('parse/node'); parse initialize('your application id', 'your javascript key'); parse serverurl = 'https //parseapi back4app com'; module exports = parse; 3\ implement crud operations for example, create a service to manage items ```javascript // itemsservice js const parse = require(' /parseconfig'); async function fetchitems() { const items = parse object extend('items'); const query = new parse query(items); try { const results = await query find(); console log('fetched items ', results); return results; } catch (error) { console error('error retrieving items ', error); } } async function createitem(title, description) { const items = parse object extend('items'); const item = new items(); item set('title', title); item set('description', description); try { await item save(); console log('item successfully created '); } catch (error) { console error('error creating item ', error); } } async function updateitem(objectid, newtitle, newdescription) { const items = parse object extend('items'); const query = new parse query(items); try { const item = await query get(objectid); item set('title', newtitle); item set('description', newdescription); await item save(); console log('item updated successfully '); } catch (error) { console error('error updating item ', error); } } async function deleteitem(objectid) { const items = parse object extend('items'); const query = new parse query(items); try { const item = await query get(objectid); await item destroy(); console log('item deleted successfully '); } catch (error) { console error('error deleting item ', error); } } module exports = { fetchitems, createitem, updateitem, deleteitem, }; 选项 b:使用 rest 或 graphql 如果您不想使用 parse sdk,您可以通过 rest api 调用与 back4app 进行交互。例如,以下是如何使用 node js 检索项目的示例: const https = require('https'); function fetchitemsrest() { const options = { hostname 'parseapi back4app com', path '/classes/items', method 'get', headers { 'x parse application id' 'your application id', 'x parse rest api key' 'your rest api key' } }; const req = https request(options, res => { let data = ''; res on('data', chunk => data += chunk); res on('end', () => console log('response ', data)); }); req on('error', error => console error('error ', error)); req end(); } fetchitemsrest(); 根据需要将这些rest调用集成到您的node js服务中。 步骤5 – 加强您的后端安全性 配置访问控制列表(acls) 通过在您的对象上设置acl来增强数据安全性。例如,要使某个项目仅对其创建者可访问: const parse = require(' /parseconfig'); async function createprivateitem(title, description, owner) { const items = parse object extend('items'); const item = new items(); item set('title', title); item set('description', description); const acl = new parse acl(); acl setreadaccess(owner, true); acl setwriteaccess(owner, true); acl setpublicreadaccess(false); acl setpublicwriteaccess(false); item setacl(acl); try { await item save(); console log('private item created successfully '); } catch (error) { console error('error saving private item ', error); } } 设置类级权限(clps) 在您的back4app仪表板中调整clp,以强制执行默认安全规则,确保只有经过身份验证的用户才能与特定集合进行交互。 步骤6 – 实施用户身份验证 配置用户管理 back4app利用parse内置的用户集合来管理身份验证。在您的node js应用中,按照下面的示例实现用户注册和登录: const parse = require(' /parseconfig'); async function signup(username, password, email) { const user = new parse user(); user set('username', username); user set('password', password); user set('email', email); try { await user signup(); console log('user registered successfully!'); } catch (error) { console error('error during sign up ', error); } } async function login(username, password) { try { const user = await parse user login(username, password); console log('user logged in ', user get('username')); } catch (error) { console error('login error ', error); } } module exports = { signup, login }; 可以使用类似的方法进行会话管理和其他身份验证功能。 步骤 7 – 部署您的 node js 应用程序 back4app 提供了顺畅的部署过程。您可以使用多种方法部署您的 node js 应用程序,包括 docker 容器化。 7 1 构建您的应用程序 编译和打包: 使用您喜欢的构建工具(如 npm 或 yarn)来准备您的应用程序。 例如,运行: npm run build 验证您的构建: 确保您的生产包包含所有必需的模块和文件。 7 2 组织您的项目布局 一个典型的 node js 项目结构可能如下所示: basic crud app node/ \| src/ \| | controllers/ \| | | itemscontroller js \| | | authcontroller js \| | models/ \| | | item js \| | | user js \| | routes/ \| | itemsroutes js \| | authroutes js \| parseconfig js \| package json \| readme md 7 3 docker 化您的 node js 应用程序 如果您更喜欢容器化部署,请在项目根目录中添加一个 dockerfile \# use an official node js runtime as a parent image from node 14 alpine \# set the working directory workdir /usr/src/app \# copy package files and install dependencies copy package json / run npm install \# copy the rest of the application code copy \# expose the application port (adjust if necessary) expose 3000 \# start the node js application cmd \["npm", "start"] 7 4 通过 back4app web 部署 连接您的 github 仓库: 在 github 上托管您的 node js 源代码。 配置部署设置: 在您的 back4app 仪表板中,选择 web 部署 选项,链接您的仓库(例如, basic crud app node ),并选择所需的分支。 设置构建和输出命令: 定义您的构建命令(例如, npm run build ) 并指定输出文件夹。 部署您的应用程序: 点击 部署 并监控日志,直到您的应用程序上线。 第 8 步 – 总结和未来的增强 恭喜你!你现在已经构建了一个与 back4app 集成的 node js crud 应用程序。 你配置了一个名为 basic crud app node 的项目,建立了 items 和 users 的集合,并通过 back4app 管理应用程序的后端。 此外,你通过 parse javascript sdk(或 rest/graphql)连接了你的 node js 应用程序,并实施了强有力的安全措施。 下一步: 增强你的应用程序: 考虑添加高级过滤、详细视图或实时更新等功能。 扩展后端功能: 探索云函数、第三方 api 集成或基于角色的访问控制。 深化你的专业知识: 查看 back4app 文档 https //www back4app com/docs 和其他教程,以进一步完善你的应用程序。 祝你编码愉快,并在使用 node js crud 应用程序的旅程中一切顺利!