什么是 @loopback/repository
@loopback/repository 是一个基于 TypeScript 和 ES7 的用于实现数据存储和查询的库,它提供了一种面向对象的方式来定义数据模型和操作数据的方法。使用该库,我们可以轻松地将数据存储到常见的数据库中,如 MySQL、PostgreSQL 和 MongoDB 等。
如何使用 @loopback/repository
安装依赖
要使用 @loopback/repository,需要先安装必要的依赖。我们可以使用 npm 或 yarn 来安装它们:
npm install --save @loopback/repository
或者
yarn add @loopback/repository
数据模型
定义一个数据模型要使用 @model
装饰器,它可以将一个 TypeScript 类转换成一个 LoopBack4 的数据模型。下面是一个基本的例子:
-- -------------------- ---- ------- ------ ------- --------- ---- ----------------------- -------- ------ ----- ---- - ----------- ----- --------- --- ----- --------- ----- -- --- ------- ----------- ----- --------- --------- ----- -- ------ ------- ----------- ----- ---------- --------- ----- -------- ------ -- ---------- -------- -
这个 Todo 类包含三个属性:id、title 和 completed。我们使用 @property
装饰器来定义它们的数据类型、是否是必填项、默认值等信息。
数据源
定义好了数据模型,接下来要配置一个数据源,使得我们的应用程序可以存储和查询数据。
@loopback/repository 支持多种数据源,我们可以使用以下内置数据源之一:
- MemoryDataSource:内存数据源,适用于简单的开发和测试环境。
- PostgreSQLDataSource / MySQLDataSource:关系型数据库数据源。
- MongoDbDataSource:MongoDB 数据库数据源。
以 PostgreSQL 数据源为例,我们需要先安装依赖:
npm install --save pg @loopback/connector-postgresql
然后,在应用程序主文件中设置数据源:
-- -------------------- ---- ------- ------ ------------------ ---- ---------------- ------ ------------------- ---- ----------------- ------ ------------------- ------ ----- -------- ------------- ----------------- - --- - ----- --- - --- -------------------------- ----- ----------- ----- ------------ ------------------- -- ------- -- ------------------------ ------ ---- -
-- -------------------- ---- ------- ------ -------------------- ---- --------------------------------- ------ ----------------- ---- ----------------- ------ ---------------- --------------- ---- ------------------ -- --- ------ ----- ---------------- ------- ---------- ----------------------------------------------- - - -------------------- ----------------- - --- - -- --- ----- ---------- - --- -------------------- ----- ------------ ----- ----- --------- --------- --------- ------------- --------- ------- --- ------------------------------------- ------------ -- --- - -
数据库表
一旦我们配置好了数据源,我们可以轻松地创建和更新数据库表。
只需要使用以下的命令即可:
$ lb4 datasource postgres
该命令将根据数据源的配置生成一个数个迁移文件。(例如:往 datasources/postgres
目录中添加 mysql.datasource.config.json
中的 models [...]
表示的表)
然后,我们可以使用以下命令来实际将这些迁移脚本应用于数据库:
$ lb4 migrate
存储库
定义数据模型后,我们需要编写一个存储库,它将提供一组 API 来操作这些数据。存储库可以包含一些标准的 CRUD 操作,例如:create、read、update、delete。
-- -------------------- ---- ------- ------ -------- ---- ----------------- ------ ----------------------- ---- ----------------------- ------ ----------------- ---- ----------------- ------ ------ -------------- ---- ------------ ------ ----- -------------- ------- ---------------------- ----- ------ ------------------ ------------- - - ---------------------------------------- ----------- ---------------- - ----------- ------------ - -
由于我们的数据源名为 MyApiDataSource
,如果要在存储库中使用该数据源,需要使用注入器来注入该数据源的实例。
这里,我们通过 @inject
装饰器来注入 datasources.myApi
。
使用存储库
最后,我们可以在控制器或服务等组件中使用存储库提供的 API 来操作数据。
-- -------------------- ---- ------- ------ ------------ ---- ----------------------- ------ ----- ------ ----- ------------ ---- ----------------- ------ ------ ---- ------------ ------ ---------------- ---- ------------------ ------ ----- -------------- - ------------ --------------------------- ------ --------------- --------------- - -- -- ---- -------------- ----- ------- --------------- - ------ ----- --------------------------- - -- ---- ------------------- ----- --------------------------------- --- -------- ------------- - ------ ----- --------------------------------- - -- -- --------------- ----- --------------------- ----- ------ ------------- - ------ ----- --------------------------------- - -
总结
@loopback/repository 是一个功能强大且易于使用的库,它提供了一种面向对象的方式来定义数据模型,并使用存储库提供一组标准的 CRUD API 来操作数据。
借助 @loopback/repository,我们可以轻松地将数据存储到常见的数据库中,并使用服务、控制器等组件来操作数据。值得一提的是,@loopback/repository 还支持多个数据源,你可以选择最适合你的应用程序的数据源。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/648b718848841e98949c73f3