[Error] TS(2339) - Session 관련

Suyeong's·2024년 1월 14일

Node.js

목록 보기
2/2

❗️(Express.js + TypeScript) Session 구현 중 에러

1.

/Eden_Back/node_modules/ts-node/src/index.ts:859
    return new TSError(diagnosticText, diagnosticCodes, diagnostics);
           ^
TSError: ⨯ Unable to compile TypeScript:
src/routes/mypage/controller.ts:10:53 - error TS2339: Property 'userId' does not exist on type 'Session & Partial<SessionData>'.

10     console.log("req.session.userId: ", req.session.userId);
                                                       ~~~~~~
src/routes/mypage/controller.ts:11:32 - error TS2339: Property 'userId' does not exist on type 'Session & Partial<SessionData>'.
// types/express-session.d.ts

import session from "express-session";

declare module "express-session" {
  interface SessionData {
    userId?: string;
  }
}
// tsconfig.json

"compilerOptions": {
    "typeRoots": [
      "types",
      "./node_modules/@types"
    ]
}

[참고링크1]
[참고링크2]

2.

/Eden_Back/node_modules/ts-node/src/index.ts:859
    return new TSError(diagnosticText, diagnosticCodes, diagnostics);
           ^
TSError: ⨯ Unable to compile TypeScript:
src/utils/auth.ts:12:11 - error TS2339: Property 'user' does not exist on type 'Request<ParamsDictionary, any, any, ParsedQs, Record<string, any>>'.

12       req.user = req.session;
             ~~~~
// types/express-extensions.ts

import { Request } from "express";

declare global {
  namespace Express {
    interface Request {
      user?: object;
    }
  }
}
// app.ts

...

import "./types/express-extensions";

...

[참고링크3]


⌨️ Express.js Session 구현하기

세션 방식 로그인, 인증 구현 (connect-mongo 이용)
Node.js 세션 메소드, 변수

0개의 댓글