loopback 文档的简略的翻译
第一部分 Loopback 核心概念
1 Model 模块
2 Application logic 应用逻辑
3 Data source and connector 数据资源以及连接这些资源的连接器
4 Loopback component loopback的一些小的子模块
5 Example 例子
Model 模块
模块 :loopback的核心
可以表示一些后端的数据资源, 像数据库 以及一些后端的服务(例如支持REST SOAP 的一些后端的服务)在这里我们可以把整个的后端服务想象成一些一个个独立的模块,数据库,服务都可以成为独立的 小的模块。
同时 loopback 本身你就可以把它看作是一个同时具有 NODE 和RESTAPI 特性的模块。
Loopback一个关键的厉害的特性:当你定义一个模块, 这个模块生成时就已经带有提前定义好的RESTAPI (带有createread update delete等操作)
基本的模块:
自带有可以与其他模块联结的方法
自带有验证数据的方法
其他的一些模块其实就是从基本模块继承而来的,这是模块的一个继承图。 当你用一个模块去链接一个像数据库一样的永久性的数据资源, 这个模块就会成为一个连接模块,这个连接模块有增删检查的一些操作。 Loopbackbuild-in 模块就是继承这个连接模块而来的。
定制模块
你可以在你的application中定义你自己的模块, 你自己的模块也可以是通过扩展已有的内建模块,这样你自己的模块也可以拥有在内建模块中已经定义好的User Application 和其他的被这个内建模块所使用的内建模块。
你可以有许多种方式去构建你自己的模块,这取决于你想使用哪一种数据源去构建你的模块
三种方法:
1 Loopback自带的模块生成器
2 使用现有的关系型数据库 (用modeldiscovery),然后通过使用一些loopbackschema/ model synchronization API 去同步你的模块。
3 By instanceintrospection for free-form data in NoSQL databases orREST APIs. 不确定这个是怎么用的
这三种方法都会生成 Model definition JSON file 这个文件时用来在Loopback里定义你的模块的。Loopback规定这个文件在 common/models 文件夹中。
你也可以通过Loopback API 编程的方式创建你自己的模块, 或者手动编辑Model definition JSON file 这个文件。 大多数情况下,你不需要用这种方式去创建, 但是你需要用这种方式去修改和定制你自己的模块。
模块之中会有一些关系像是BelongsTo, HasMany, and HasAndBelongsToMany. 之后有机会再做详细介绍
模块的增删检查操作
当你生成一个用于连接数据块的模块的时候,这个模块就成为一个联结模块,联结模块本身具有增删检查的方法。这写方法是来自于一个叫PersistedModel的类。
以上列出来的一些方法只是一些著名的例子,他还会提供一些类似功能的方法。具体的请参照 PersistedModel APIdocumentation
Application logic 应用逻辑
有以下几种方式你可以自己定制你需要的应用于你自己的application的逻辑。
1 把应用逻辑添加到model的remoteMethod 中 (你需要自己定制你的REST Api, 在remoteMethod)remoteMethod会触发 remote hooks 模块中增删检查的方法也会触发 operationhooks
2 添加boot script 当你的application启动的时候就会被运行到
3 定义你想要定制的中间件 也是一种添加应用逻辑的方式
中间件阶段
中间件是什么
中间件指的是一些列被调用的 functions, 这些function的运行是在 http请求生成后直到RESTAPI 被处理之前。 这个REST API 是你自己定义在你自己的模块remoteMethod 中。
Loopback是基于Express 所以loopback中的中间件类似于Express中的中间件的。但是在Loopback中,增加了phases阶段的概念,这个概念是为了清楚地定义中间件执行的顺序。阶段可以帮助我们避免那些出现在Express中的那些由顺序产生的问题。
Data sources and connector 数据源和连接器
Loopback 把一些后端服务像数据库,REST API, SOAP web service通用作 data source
在data source之后是connector ,connector才会直接与真正的数据库 和 后端的服务交流。Application不会直接使用connector, 而是通过data source 或者是PersistedModel APIs,在解释一遍PersistedModel APIs 其实就是loopback提供用来和真正的数据库交互的一组API.
Loopback component( loopback中的一些小的模块)
主要是用来提供一些额外的附加功能
1推送功能 发送信息到移动app
2 存储服务 允许上传下载数据到云存储(Amazon, Rackspace, Openstack,and Azure)以及loopback的服务上。
3 第三方登录 Facebook, Google, Twitter, Github, or 任何支持OAuth, OAuth 2, or OpenID 的第三方
4 同步允许移动端离线操作,等到重新连接时再同步数据
5 OAuth 2.0 主要用于验证权限