Node.js框架LoopBack 3入门教程
前言
由于国内LoopBack框架普及度不高,能搜索到的相关博文也很少,因此一般都是看官方的文档。官方文档目前是没有中文版本的,有一定的理解成本,再一个就是官方文档细节部分有一定缺失,需要非常熟悉才完成相关功能开发和扩展。为此通过自己对LoopBack学习的过程总结整理成文章分享,目的是能降低LoopBack的入门学习门槛、能让开发者减少入门时间,从而更快的上手loopback。
概述
LoopBack是IBM旗下子公司StrongLoop的开源项目,是建立在Express基础上的可扩展的Node.js服务框架,其最大的特点就是通过模型和少量代码轻松创建标准REST API接口。
其官方给出的特性如下:
- 无需编码或者少量编码即可创建动态的端到端REST API。
- 数据源支持Oracle、MySQL、PostgreSQL、MS SQL Server、MongoDB、SOAP、REST APIs、其他数据。
- 整合复杂API的模型关系和访问控制。
- 使用内置的组件用于移动应用场景下的地理定位、文件服务以及消息推送。
- 用Android、iOS和JavaScript的SDK轻松创建客户端应用程序。
- 在本地或云端运行您的应用程序。
其核心如下:
- loopback:核心库,开箱即用。
- loopback-datasource-juggler:ORM/ODM,提供一组通用接口,用于与数据库、REST API、其他类型的数据源进行交互。
- strong-remoting:主要用于本地函数转换成api接口。
整个架构和模块依赖如下图:
项目初始化
您可以从头开始编写LoopBack应用程序,但安装使用命令工具可以快速初始化项目。官方有两种命令工具:
命令工具将构建应用程序的基本结构,然后您可以根据需要进行自定义。
安装
这里推荐安装使用LoopBack CLI tool,命令:
npm install -g loopback-cli
然后查看版本检查是否安装成功:
lb -v
返回版本号表示安装成功,如果没有安装成功,请排查原因,官方相关文档。
项目初始化
运行lb命令初始化项目:
lb
接下来输入应用程序名称、目录名称,然后选择LoopBack版本、初始化模版(选择empty-server),如下图:
接下来会自动安装完成初始化,安装完成后,运行命令cd lb-demo
进入该项目。
初始化项目结构如下:
|-- client/ 客户端文件目录,存放JavaScript、HTML、CSS等文件
|-- common/(无) 存放服务端和客户端通用的文件
|-- server/ 服务端资源目录
|-- boot/ 存放启动脚本,详情请查看官方文档
|-- models/ 模型存放目录
|-- component-config.json 加载组件配置文件
|-- config.json 服务端配置文件
|-- datasources.json 数据源配置文件
|-- middleware.development.json 开发环境中间件配置
|-- middleware.json 默认中间件配置
|-- model-config.json 模型绑定到数据源配置
|-- server.js 服务端程序入口
快速创建一个简单的API
现在,我们开始创建文章的API来试试。
第一步创建数据源:
lb datasource
选择db连接器,其它默认下一步就可以了,最后会在./server/datasources.json文件里自动生成关于db数据源的配置数据。
第二步创建模型:
lb model
输入模型名称article,指定我们刚创建好的数据源db,其它选项如下图所示,最后创建属性完毕,按enter键完成退出。最后会在./server/models生成两个文件article.js(模型扩展文件)、article.json(模型的配置信息),另外在/server/model-config.json文件生成一条关联数据源的配置信息。
注:模型名称官方推荐小写,为了与内置模型区分;公共模型或服务器模型,公共模型客户端和服务端都可以用,模型文件放在common下,服务端模型只有服务端可以用,模型文件放在server下。
详细步骤如下图:
第三步运行服务:
npm run start
或者
node .
然后访问http://localhost:3000/,访问成功。
访问http://localhost:3000/explorer/可以查看用swagger-ui创建的相关REST API测试页。
总结
这篇我们完成了对LoopBack的大概了解,并安装了LoopBack CLI工具,通过命令工具快速的初始化了一个lb-demo项目,然后通过命令简单的创建了文章API。