用户登录

在 Avatar 控制器里再定义一个获取头像用的接口,添加一个方法,方法的名字可以叫 serve ,在这个方法的上面,用 @Get 装饰器装饰一下,添加一个 :id 参数。

方法里先得到 id 参数的值,用 @Param 装饰器,参数的名字是 id,参数值用 ParseIntPipe 转换成数字,参数的名字叫 id,类型是 number。

再添加一个 res 参数,参数用 @Res 装饰器装饰一下,参数的类型是 Response 。

在方法里面,添加一个 file ,await 用一下 this.avatarService 上的 show 方法,把 id 交给这个方法。

打开 AvatarService 服务,在服务里定义需要的 show 这个方法。方法接收一个 id 参数,类型是 number,方法里面,return 的是,await 用一下 this.avatarRepository 上的 findOne ,把 id 参数交给这个方法。

Repository 上的 findOne 可以从数据库里获取到指定 id 的数据。这里得到的就是存储在 avatar 数据表里的指定的数据记录。

回到 Avatar 控制器,继续编辑 serve 方法,

用一下 res 上的 sendFile 方法,文件名是 file.filename,一个对象,用 root 设置一下文件的位置,uploads/avatar ,再添加一个 headers, 里面添加一个 Content-type 头部,值设置成 file.mimetype,就是告诉一下客户端这个文件的类型是什么。

测试

在一个 Http 客户端上试一下这个接口。新建一个请求,名字叫 Avatar serve 。 请求用的方法是 Get,地址是 http://localhost:3000/avatar/ 后面加上头像的 id 号。

在应用里面暂时只上传过一个头像文件,id 号是 1。 发送一下请求,得到的响应就是一个图像文件。

定义获取头像接口《 Nest.js 应用案例:头像接口 》

统计

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

社会化网络

关于

微信订阅号

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