用户登录

发布内容可以交给一个命令完成,在终端,项目所在目录的下面,执行 npm run gc 生成一个命令,名字是 create-post,放在 post/modules/create/commands 里面。

回到项目,打开刚才生成的这个命令,CreatePostCommand,让这个命令参数 extends 继承一下 CreatePostDto,然后再添加一个 userId ,类型是 number 。

打开这个命令的处理器,先在处理器构造方法里注入一个 Repository 依赖,对应的实体是 PostEntity,名字是 userRepository,然后分别再导入需要用的这些东西。

在 execute 里面,声明一个 post,等于 await,用一下 this.postRepository.save,把 command.params 交给这个方法。最后返回的东西可以是一个对象,里面添加一个 insertId,值是 post.id 。

PostCreateController

打开 PostCreateController,在这个控制器的构造方法里,注入一个依赖,需要的是 CommandBus 。下面这个 createPost 方法里面需要用到当前用户,用 @CurrentUser 装饰器装饰一个参数,名字是 user,类型是 UserEntity。

在方法里 return 的东西可以是执行 CreatePostCommand 命令返回的结果,新建一个 CreatePostCommand,提供一个对象,把 body 里的东西先放进来,然后添加一个 userId,值是 user.id 。

测试

在 Http 客户端测试一下,发送一下这个创建内容请求,成功以后会得到这个新创建的内容的 id。再打开数据库客户端观察一下 post 数据表,现在这个表里会出现一条数据记录。

创建内容《 Nest.js 企业级后端实践:内容管理 》

统计

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

社会化网络

关于

微信订阅号

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