5 min read

Node.js框架LoopBack 3入门教程

这篇读完可以对LoopBack有个大概的了解,用安装的LoopBack CLI工具,通过命令工具快速的初始化了一个lb-demo项目,然后通过命令简单的创建了文章API。

前言

由于国内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 CLI tool,命令:

npm install -g loopback-cli

然后查看版本检查是否安装成功:

lb -v

返回版本号表示安装成功,如果没有安装成功,请排查原因,官方相关文档

项目初始化

运行lb命令初始化项目:

lb

接下来输入应用程序名称、目录名称,然后选择LoopBack版本、初始化模版(选择empty-server),如下图:
loopback初始化

接下来会自动安装完成初始化,安装完成后,运行命令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下。
详细步骤如下图:
loopback创建简单的api

第三步运行服务:

npm run start

或者

node .

然后访问http://localhost:3000/,访问成功。
访问http://localhost:3000/explorer/可以查看用swagger-ui创建的相关REST API测试页。

总结

这篇我们完成了对LoopBack的大概了解,并安装了LoopBack CLI工具,通过命令工具快速的初始化了一个lb-demo项目,然后通过命令简单的创建了文章API