创建并运行 LoopBack 项目
什么是 LoopBack?
LoopBack 是一个由 IBM 开发的高度可扩展的 Node.js 框架,用于构建 API 和微服务。它提供了强大的工具和特性,使得开发者可以轻松创建、测试和部署 API。LoopBack 具有模型驱动的开发(MDD)方式,可以快速生成 RESTful API,并且支持多种数据库连接。
LoopBack 的主要特性和优势
- 模型驱动开发:通过定义模型,自动生成 RESTful API。
- 多数据库支持:支持多种数据库,如 MongoDB、MySQL、PostgreSQL、MariaDB 等。
- 强大的 CLI 工具:LoopBack CLI 提供了丰富的命令,简化了项目的创建和管理。
- 丰富的插件和扩展:拥有丰富的插件和扩展,可以轻松集成第三方服务和库。
- 内置用户认证和授权:提供了强大的用户认证和授权机制。
使用 LoopBack,可以帮助开发者快速构建高性能和可扩展的 Web 应用和 API。
使用 ServBay 创建并运行 LoopBack 项目
在这篇文章中,我们将使用 ServBay 提供的 Node.js 环境来创建并运行一个 LoopBack 项目。我们将使用 ServBay 的『主机』功能来设置 Web 服务器,并通过反向代理来实现项目的访问。
创建 LoopBack 项目
安装 LoopBack CLI
首先,确保您已经安装了 ServBay 提供的 Node.js 环境。然后,使用以下命令全局安装 LoopBack CLI:
bashnpm install -g @loopback/cli
1初始化项目
在 ServBay 建议的网站根目录
/Applications/ServBay/www
中创建一个新的 LoopBack 项目:bashcd /Applications/ServBay/www lb4 app servbay-loopback-app
1
2按照提示输入项目名称(建议命名为
servbay-loopback-app
),并根据需要选择其他选项。安装依赖
进入项目目录并安装依赖:
bashcd servbay-loopback-app npm install
1
2
修改 LoopBack 项目输出内容
修改
src/controllers/ping.controller.ts
文件打开
src/controllers/ping.controller.ts
文件,修改内容使网页输出 "Hello ServBay!":typescriptimport {get} from '@loopback/rest'; export class PingController { constructor() {} @get('/ping') ping(): string { return 'Hello ServBay!'; } }
1
2
3
4
5
6
7
8
9
10
进入开发模式
运行开发服务器
启动开发服务器并指定端口(例如:8585):
bashPORT=8585 npm start
1这将会在本地启动一个开发服务器,并暴露端口 8585。
配置 ServBay 主机反向代理
使用 ServBay 的『主机』功能,通过反向代理来访问开发服务器。在 ServBay 的『主机』设置中,添加一个新的反向代理:
- 名字:
My first LoopBack dev site
- 域名:
servbay-loopback-test.dev
- 主机类型:
反向代理
- IP:
127.0.0.1
- 端口:
8585
详细设置步骤请参考添加Nodejs开发的网站。
- 名字:
访问开发模式
打开浏览器,访问
https://servbay-loopback-test.dev/ping
,实时查看项目。由于 ServBay 支持自定义域名以及免费的 SSL 证书,您将享受到更高的安全性。
部署生产版本
准备生产环境
确保您的项目在生产环境中可以正常运行。通常,LoopBack 项目不需要特别的构建步骤,但您可能需要设置一些环境变量或进行其他配置。
运行生产服务器
启动生产服务器并指定端口(例如:8586):
bashPORT=8586 NODE_ENV=production npm start
1配置 ServBay 主机反向代理
使用 ServBay 的『主机』功能,通过反向代理来访问生产服务器。在 ServBay 的『主机』设置中,添加一个新的反向代理:
- 名字:
My first LoopBack production site
- 域名:
servbay-loopback-test.prod
- 主机类型:
反向代理
- IP:
127.0.0.1
- 端口:
8586
- 名字:
访问生产模式
打开浏览器,访问
https://servbay-loopback-test.prod
,查看生产版本。通过 ServBay 的自定义域名和免费的 SSL 证书,您的网站将具有更高的安全性和可信度。
数据库连接
ServBay 提供了 Redis、MariaDB、PostgreSQL 和 MongoDB 数据库支持。以下是如何连接这些数据库的示例。
连接 MongoDB
安装
@loopback/connector-mongodb
:bashnpm install --save @loopback/connector-mongodb
1然后在项目中配置数据源:
typescript// src/datasources/mongodb.datasource.ts import {juggler} from '@loopback/repository'; const config = { name: 'mongodb', connector: 'mongodb', url: 'mongodb://localhost/servbay-loopback-app', host: 'localhost', port: 27017, user: '', password: '', database: 'servbay-loopback-app', }; export class MongodbDataSource extends juggler.DataSource { static dataSourceName = 'mongodb'; constructor() { super(config); } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20连接 Redis
安装
loopback-connector-redis
:bashnpm install --save loopback-connector-redis
1然后在项目中配置数据源:
typescript// src/datasources/redis.datasource.ts import {juggler} from '@loopback/repository'; const config = { name: 'redis', connector: 'redis', url: 'redis://localhost:6379', }; export class RedisDataSource extends juggler.DataSource { static dataSourceName = 'redis'; constructor() { super(config); } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15连接 MariaDB
安装
@loopback/connector-mysql
:bashnpm install --save @loopback/connector-mysql
1然后在项目中配置数据源:
typescript// src/datasources/mariadb.datasource.ts import {juggler} from '@loopback/repository'; const config = { name: 'mariadb', connector: 'mysql', url: '', host: 'localhost', port: 3306, user: 'root', password: 'password', database: 'servbay_loopback_app', }; export class MariaDbDataSource extends juggler.DataSource { static dataSourceName = 'mariadb'; constructor() { super(config); } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20连接 PostgreSQL
安装
@loopback/connector-postgresql
:bashnpm install --save @loopback/connector-postgresql
1然后在项目中配置数据源:
typescript// src/datasources/postgresql.datasource.ts import {juggler} from '@loopback/repository'; const config = { name: 'postgresql', connector: 'postgresql', url: '', host: 'localhost', port: 5432, user: 'user', password: 'password', database: 'servbay_loopback_app', }; export class PostgresqlDataSource extends juggler.DataSource { static dataSourceName = 'postgresql'; constructor() { super(config); } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
通过以上步骤,您成功创建并运行了一个 LoopBack 项目,并使用 ServBay 提供的功能来管理和访问您的项目,同时连接了多种数据库。