【发布时间】:2020-10-04 06:10:05
【问题描述】:
我有一个用户 ObjectType 并希望在我的 LoginResolver 中将用户和为该用户生成的令牌作为对象返回,如下所示:
{user:User, token:string}
目前我可以返回用户或字符串,具体取决于我在 @Mutation() 装饰器中给出的类型
@Mutation((returns) => User)
async login(
@Arg("email") email: string,
@Arg("password") password: string,
@Ctx("ctx") ctx: IContext
) {
const user = await this.userRepo.findOneUser({ where: { email } });
const success = await compare(password, user.password);
if (!success) ctx.throw(401);
const token = await this.tokenRepo.createToken(user);
return user;
}
当我尝试创建一个 UserWIthToken 对象类型时,用户实体上的每个字段都会出现以下错误:
app_1 | error: [ValidationError: Cannot query field "id" on type "UserWithToken".] {
app_1 | locations: [ [Object] ],
app_1 | path: undefined,
app_1 | extensions: { code: 'GRAPHQL_VALIDATION_FAILED', exception: [Object] }
app_1 | }
app_1 | }```
dont mind the app_1 here, Iam using docker
【问题讨论】:
标签: node.js typescript graphql apollo-server typegraphql