一、StrongLoop框架简介
StrongLoop是一个强大的框架,它基于Node.js构建,几乎涵盖了移动开发所需的所有功能。这个框架由IBM的一个子公司开发和维护,它使用开源的LoopBack作为基础,这使得它非常灵活和可扩展。StrongLoop的好处在于它可以帮助我们快速地构建移动应用的后端服务。它提供了一整套解决方案,包括API的创建、数据模型管理、数据库连接等等。这意味着我们不需要从头开始编写这些功能,而是可以直接使用StrongLoop提供的现成工具来完成工作。此外,StrongLoop还支持多种数据库系统,如MySQL、MongoDB、PostgreSQL等,这让我们可以根据项目需求选择最适合的数据库来存储和管理数据。最重要的是,StrongLoop可以帮助我们轻松地构建RESTful API,这对于现代Web应用非常重要,因为它们通常需要与前端分离的后端API来支持多平台的应用开发。
StrongLoop框架的核心优势和功能可以总结为以下几点:
- 全栈开发能力
- StrongLoop提供了从前端到后端的全套开发工具和服务,包括API创建、数据模型管理、数据库连接等。
- 它通过提供全面的后端解决方案,大大减少了开发者需要编写的代码量,使得快速开发成为可能。
- 高度扩展性
- 基于LoopBack.io构建,StrongLoop拥有良好的扩展性,允许开发者根据项目需求轻松添加功能模块。
- 随着项目需求的增加,开发者可以通过添加功能模块来拓展框架的能力。
- 数据库支持
- StrongLoop支持多种数据库系统,如MySQL、MongoDB、PostgreSQL等,满足不同开发场景的数据存储和处理需求。
- 这种多数据库支持确保了开发者可以为不同的应用场景选择最合适的数据存储解决方案。
- 自动生成SDK
- 根据后端模型,StrongLoop可以自动生成对应的前端SDK,极大地简化了前后端的协同工作。
- 这一特性不仅提高了开发效率,还减少了前后端集成中可能出现的错误。
- DevOps工具集成
- StrongLoop集成了调试、包管理、构建、部署、集群管理和日志记录等DevOps工具,帮助开发者在整个应用生命周期中进行有效管理和维护。
- 这些工具的集成有助于确保项目的高效运行和稳定发布。
- 实时通信功能
- 对于需要实时数据交互的应用,StrongLoop提供了实时通信的功能,大大提升了用户体验。
- 实时通信功能对于构建动态和交云的现代应用尤为重要,比如即时消息通知、实时数据分析等场景。
二、安装StrongLoop框架
- 需要安装完成node环境
- 执行命令安装strongloop :npm install -g strongloop 或者
yarn global add strongloop
三、创建项目my-loopback-project
创建项目my-loopback-project
具体命令如下
- slc loopback
- 填写应用名称
- 输入目录名称包含项目(这里可以回车跳过)
- 使用版本2.x,3.x,根据个人需求选择
- 创建什么种类的应用程序,根据个人需求选择
- cd 项目目录名称,如testApp
- npm install
- node server/server.js 启动脚本
四、项目布局和结构
Standard project layout(标准的项目布局)
在 Loopback 根目录下有三个 子目录:
- server - Node 应用脚本和配置文件
- client - 客户端 JavaScript, HTML, 和 CSS 文件.
- common - 文件共用客户端和服务器. 子目录 common/models 目录 包含所有模型JSON和JavaScript文件
- definitions - API and product definition YAML files (IBM API Connect only).
目录结构
|- node-modules/
|- package.json
|- README.md
|- server/ 后台服务端目录
| |- boot/ 初始化脚本路径, 里面的文件会按照字母顺序执行.
| |- config.json 应用程序配置文件 | 可以通过 app.get('setting-name')获取
| |- component-config.json [LoopBack组件]加载的配置
| |- datasources.json 数据源配置 | 可以通过 app.datasources['datasource-name'] 获取
| |- middleware.json 中间件定义文件
| |- model-config.json Model 定义文件
| |- server.js 核心启动文件
|
|- client/
| |- README.md
| |- other
|
|- common/ 共享文件夹
| |- models/ 自定义模型文件夹 | myModel = app.models.myModelName
| |- model-name.js 模型逻辑脚本
| |- model-name.json 模型配置脚本 | 小写