打开 Avatar 模块里的这个控制器,修改一下在这个控制器里定义的 serve 方法,在这个方法里添加一个新的参数,参数用 @Query 装饰器装饰一下,查询参数的名字是 size,把请求里带的 size 这个查询参数,交给这个方法的 size 参数,类型是 string 。
在方法里我们可以根据这个 size 的值来决定提供哪种尺寸的头像文件。
从 file 里面,把 filename 解构出来。 let 大括号, filename 等于 file 。
然后做一下判断,如果 size,就是如果请求的地址里带着 size 这个查询参数,可以重新设置一下要提供的文件的名字,filename 等于,一个字符模板,filename 后面加上 size 这个后缀。
下面给 sendFile 提供的是 filename 。
测试
回到 Http 客户端试一下,准备一个头像请求,现在这个请求里面可以添加一个 size 查询参数,参数的值就是需要的获取到的头像的尺寸。比如 256。
提示了一个 500 的错误,原因是没找到对应的文件,这里修改一下头像的 id 号,换成 2 ,发送一下这个请求。
现在得到的就是宽度与高度是 256 的头像,修改一下 size 的值,换成 128 ,这回得到的是 128 宽度还有高度的头像。还有一个尺寸是 64 ,获取到的就是宽度高度都是 64 的这个头像。
如果不加 size 查询参数,直接请求 avatar 后面加上 id 号,获取到的就会是用户原始上传的头像文件。