使用实体的 Repository 存储数据

0
视频
0
完成
0%
进度
0
分钟
0
完成
0%
进度

在这个 Post 服务里,可以定义一个存储实体数据用的方法,添加一个 async 方法, 名字叫 store,接收一个 data 参数。

方法里面添加一个 entity,await ,用一下 this.postRepository 上的 create 方法创建一个 Post 实体,把 data 参数的值交给它。

然后再把它保存在数据库里,await 用一下 this.postRepository,用一下 Repository 上的 save 方法,把 entity 交给这个方法,这个方法会把上面创建的这个实体存储在对应的数据表里,因为这里用的是 postRepository ,所以会存储在 Post 实体对应的数据表里,默认就是 post。

最后让这个方法 return 这个 entity。

打开 post.controller 控制器,在这个控制器里需要用到 post.service 上提供的服务,可以把这个服务注入进来,添加一个 constructor,private readonly postService,类型是 PostService。

下面添加一个路由,支持的 HTTP 方法是 POST,用一下 @Post 装饰器,注意这里要导入的是 nestjs/common 模块里的 Post ,不是我们自己定义的 Post 实体。

添加一个 async 方法,名字叫 store,接收一个 data 参数,这个参数可以使用 @Body 装饰器装饰,这样这个 data 参数的值就会是请求里的主体数据。

方法里面 return 的是,用一下 await,执行 this.postService 上的 store 方法,把 data 交给它。

打开一个 HTTP 客户端,配置一个 HTTP 请求,请求的方法选择 POST,请求的地址是 http://localhost:3000/posts

请求里带着一个 JSON 格式的主体数据,这个数据会交给 PostController 里的 store 方法的 data 参数,里面添加一个 title ,设置一下对应的值,下面再添加一个 body ,再设置一下对应的值。

然后发送一下这个请求,应用给客户的响应,状态码是 201,表示创建了新的内容,响应的数据就是创建的实体内容。

打开数据库客户端,检查一下应用的数据库里的 post 这个数据表里的数据,你会发现这里已经有了一条数据记录。

注意这个记录里面,只有 title 还有 body 是我们通过 HTTP 客户端发送给后端服务的,记录里的其它字段的值都是自动设置的,比如这个 id,created , 还有 updated。

再回到客户端,修改一下要发送的数据,发送一下请求,回到数据库客户端,这里又会多了一条数据记录。

再去配置一个请求,修改一下请求里带的数据,成功以后,回到数据库客户端,再检查一下 post 数据表里的数据记录,现在这个表里一共有三条数据记录。

使用实体的 Repository 存储数据《 Nest.js 应用框架:处理数据 》

统计

15260
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点