강의

멘토링

로드맵

BEST
개발 · 프로그래밍

/

백엔드

Node.js에 TypeScript 적용하기(feat. NodeBird)

Node.js에 타입스크립트를 적용해보고, 기존 npm 패키지에 타이핑을 추가하거나, 직접 타입스크립트 라이브러리를 만들어봅시다.

(4.5) 수강평 15개

수강생 472명

난이도 중급이상

수강기한 무제한

  • 제로초(조현영)
새소식 목록
관리
작성

serializeUser와 deserializeUser 에러나는 분들께

passport 관련 타이핑이 또 업데이트 되었네요.

types/index.d.ts에 다음 코드를 추가하고

import IUser from '../models/user';

declare global {
    namespace Express {
        export interface User extends IUser {}
   }
}

passport/index.ts를 다음과 같이 바꾸세요.
 passport.serializeUser((userdone=> {
    done(nulluser.id);
 });
  passport.deserializeUser<number>(async (iddone=> {
    try {
      const user = await User.findOne({
        where: { id },
     });
      if (!user) {
        return done(new Error('no user'));
     }
      return done(nulluser); // req.user
    } catch (err) {
      console.error(err);
      return done(err);
   }
});

덤으로 req.user도 req.user!.toJSON() as User 할 필요 없게 되었습니다. 그냥 req.user 쓰시면 됩니다.

tsconfig.json에는 ts-node 부분 추가하셔야 합니다.
{
"ts-node": {
"files": true
},
"compilerOptions": {
"strict": true,
"lib": ["es2020"],
"esModuleInterop": true,
"moduleResolution": "node",
"typeRoots": ["./types"]
}
}
댓글