之前我们在 user.service 里定义过一个按用户名查找用户用的函数,名字是 getUserByName(),下面可以重构一下这个函数,让它更灵活一些。
先在这个函数的上面可以再定义一个 interface, 名字叫 GetUserOptions ,里面添加一个可选的属性,名字叫 password,类型是 boolean 。
然后修改一下 getUserByName,给它添加一个新的参数,名字是 options,把这个参数的类型设置成 GetUserOptions。然后给这个参数提供一个默认的值,让它等于一个空白的对象。这样如果在使用这个函数的时候没有提供这个 options 参数的值,它的值就会是这个默认的空白对象。
在函数里面,先解构一下这个选项参数,把 password 从 options 参数里解构出来。 再修改一下准备的这段查询,需要 id 字段, name 字段,还需要一个 password 字段,在查询结果里包含这个字段要先判断一下选项参数里的 password 属性的值,如果它的值是 true,我们就在这个查询结果里加上用户的密码字段的值。 如果是 false,这里可以用一个空白。