关于Server端从Context获取user.id

来源:8-13 useContext 使用最佳实践,并用其存储全局用户信息(3)

是李骏同学

2023-09-13

@Query(() => UserType, { description: '使用 ID 查询用户' })
  async getUserInfo(@Context() cxt: any): Promise<UserType> {
    const id = cxt.req.user.id;
    return await this.userService.find(id);
  }

此节视频开头就展示了Resolver从cxt获取user.id但是我本地运行的结果是id未定义,是哪里出了问题呢?
查询语句:

query {
  getUserInfo {
    tel
    id
  }
}

查询结果:

{
  "errors": [
    {
      "message": "Cannot read properties of undefined (reading 'id')",
      "locations": [
        {
          "line": 2,
          "column": 3
        }
      ],
      "path": [
        "getUserInfo"
      ],
      "extensions": {
        "code": "INTERNAL_SERVER_ERROR",
        "exception": {
          "stacktrace": [
            "TypeError: Cannot read properties of undefined (reading 'id')",
            "    at UserResolver.getUserInfo (C:\\Users\\Adam\\WorkSpace\\water-drop-server\\src\\modules\\user\\user.resolver.ts:26:29)",
            "    at C:\\Users\\Adam\\WorkSpace\\water-drop-server\\node_modules\\.pnpm\\@nestjs+core@9.4.3_@nestjs+common@9.4.3_@nestjs+platform-express@9.4.3_reflect-metadata@0.1.13_rxjs@7.8.1\\node_modules\\@nestjs\\core\\helpers\\external-context-creator.js:67:33",
            "    at processTicksAndRejections (node:internal/process/task_queues:95:5)",
            "    at target (C:\\Users\\Adam\\WorkSpace\\water-drop-server\\node_modules\\.pnpm\\@nestjs+core@9.4.3_@nestjs+common@9.4.3_@nestjs+platform-express@9.4.3_reflect-metadata@0.1.13_rxjs@7.8.1\\node_modules\\@nestjs\\core\\helpers\\external-context-creator.js:74:28)",
            "    at Object.getUserInfo (C:\\Users\\Adam\\WorkSpace\\water-drop-server\\node_modules\\.pnpm\\@nestjs+core@9.4.3_@nestjs+common@9.4.3_@nestjs+platform-express@9.4.3_reflect-metadata@0.1.13_rxjs@7.8.1\\node_modules\\@nestjs\\core\\helpers\\external-proxy.js:9:24)"
          ]
        }
      }
    }
  ],
  "data": null
}
写回答

1回答

黑石

2023-09-14

没有加 guard 装饰器

0
0

React18+TS+NestJS+GraphQL 全栈开发在线教育平台

平台级应用+流行全栈技术+实用职场技巧&面试策略 助你升职加薪

439 学习 · 242 问题

查看课程