准备工作:
安装LTS版本的Node.js.
安装LoopBack CLI工具
npm install -g loopback-cli
英文原地址:http://loopback.io/doc/en/lb3/LoopBack-core-concepts.html
LoopBack核心概念
模型是LoopBack的核心,代表后端数据源,如数据库或其他后端服务(REST,SOAP等)。LoopBack模型是具有Node和REST API的JavaScript对象。
LoopBack的一个关键功能是当您定义模型时,它将自动附带预定义的REST API,并具有完整的创建,读取,更新和删除操作。
在 基本模型对象对添加方法 挂钩 和验证数据。其他模型对象都“继承”它。模型具有继承层次结构,如图所示:将模型附加到持久性数据源时,它将成为 具有创建,检索,更新和删除操作的连接模型。LoopBack的内置模型从它继承。
内置型号
每个LoopBack应用程序都有一组预定义的 内置模型,如用户,角色和应用程序,因此您不必从头开始创建这些常见模型
定制机型
您可以 定义自己的 特定于您的应用程序的自定义模型。您可以使您的自定义模型 扩展内置模型, 以建立在用户, 应用程序和其他内置模型的预定义功能的基础上 。
您可以以各种方式创建LoopBack模型,具体取决于模型基于什么样的数据源。您可以创建模型:
- 使用LoopBack模型生成器。
- 从 使用模型发现的现有关系数据库中。然后,您可以使用LoopBack的模式/模型同步 API 将模型与数据库保持 同步。
- 例如 NoSQL数据库或REST API中的自由格式数据的内省。
所有这三种方法都创建了一个 模型定义JSON文件,它通过LoopBack项目的common/models目录中的约定在LoopBack中定义您的模型; 例如,common/models/account.json。
您也可以使用LoopBack API以编程方式创建和自定义模型 ,也可以手动编辑 模型定义JSON文件。在大多数情况下,您不需要使用这些技术来创建模型,但您通常将使用它们来修改和定制模型。
注意:
该模型定义JSON文件包括idInjection指示环回是否会自动添加一个独特的财产 id 属性的模型。对于连接到数据库的模型,id属性对应于主键。有关详细信息,请参阅ID属性。
模型关系
你可以表达 模型之间的关系,如 BelongsTo, HasMany 和 HasAndBelongsToMany。
模型创建,检索,更新和删除操作
当将模型连接到持久数据源(如数据库)时,它将成为一个 连接的模型, 其中包含来自PersistedModel 类的一整套创建,读取,更新和删除操作 :
操作 | REST | LoopBack模型方法 | 相应的SQL操作 |
---|---|---|---|
创建 | PUT / modelName 和 POST / modelName | create() | INSERT |
阅读(检索) | GET / modelName?filter = ... | find() | SELECT |
更新(修改) | PUT / modelName | updateAll() | UPDATE |
删除(毁灭) | DELETE / modelName / modelID | destroyById() | DELETE |
(*)列举的方法只是突出例子; 其他方法可以提供类似的功能; 例如: findById(), findOne(),和 findOrCreate()。
有关更多信息,请参阅PersistedModel API文档。
应用逻辑
您可以以多种方式添加自定义应用程序逻辑; 您可以:
- 通过远程方法(自定义REST端点), 远程 方法触发的远程 钩子 以及由模型创建,检索,更新和删除方法触发的操作钩子将应用程序逻辑添加到模型中。
- 添加应用程序启动时运行的引导脚本。
- 定义自定义 中间件,类似于Express中间件。
您可以在将数据保存到模型和后端数据存储之前添加验证数据的代码。
中间件阶段
中间件 是指当HTTP请求到REST端点做出执行的功能。由于LoopBack基于 Express,LoopBack中间件与Express中间件相同 。然而,LoopBack增加了阶段的概念,以清楚地定义调用中间件的顺序。使用阶段有助于避免订购标准Express中间件可能发生的问题。
数据源和连接器
LoopBack将后端服务(如数据库,REST API,SOAP Web服务和存储服务)概括为 数据源。
数据源由连接器支持,然后连接器直接与数据库或其他后端服务进行通信。应用程序不直接使用连接器,而是使用DataSource 和 PersistedModel API 访问数据源 。
LoopBack组件
LoopBack组件提供额外的“插件”功能:
- 推送通知 - 可以将信息发送到移动应用,以立即在移动设备上的“徽章”,警报或弹出式消息中显示。
- 存储组件 - 可以向云存储提供商(Amazon,Rackspace,Openstack和Azure)以及服务器文件系统上传和下载文件。
- 第三方登录 - 集成 Passport ,并使用来自Facebook,Google,Twitter,Github或支持OAuth,OAuth 2或OpenID的任何系统的第三方凭据启用用户登录(和帐户链接)。
- 同步 - 使移动应用程序能够脱机运行,然后在重新连接时将数据与服务器应用程序同步。
- OAuth 2.0 - 使LoopBack应用程序能够作为oAuth 2.0提供程序来验证和授权客户端应用程序和用户访问受保护的API端点。