본문 바로가기
728x90
반응형

공부/express9

[Express][Jest][ESModule] Cannot use 'import.meta' outside a module 상황express 서버에서 ES Module을 사용하여 view router를 만들고 요청이 들어오면 html 파일을 보내주는 간단한 웹 서버를 구현하고 있었다. 원하는 html 파일을 보내주기 위해서 html 파일이 존재하는 위치를 가져와야 했다. 기본적으로 common JS를 사용할 때는 __dirname을 사용하여 파일의 위치를 알 수 있는데 ES Module에서는 __dirname을 사용할 수가 없다. 그래서 import.meta.url을 사용하여 아래와 같이 __dirname을 만들어서 사용하였다. import { fileURLToPath } from 'url';const __filename = fileURLToPath(import.meta.url);const __dirname = path.di.. 2024. 6. 16.
[Express] jest로 단위 테스트 하는 법 이번 포스팅에서는 jest를 사용해서 단위 테스트를 진행해보려고 한다. 단위 테스트는 전체적인 통합 기능을 테스트 하는 것이 아닌 작은 단위의 모듈을 테스트하는 것이다. 어떠한 모듈을 테스트하고 싶을 때 그 모듈이 다른 모듈과 연관 관계를 가지고 있으면 단위 테스트가 어려울 수 있다. 이 때 사용하는 것이 바로 Mock 객체이다. Mock 객체는 가짜 객체로 우리가 미리 어떤 입력이 들어오면 어떤 값을 내보낸다고 정해두는 것이다. 내부 실제 비즈니스 로직이 동작하는 것이 아니라 그냥 단순히 입력과 출력이 있는 것이다. 이 Mock 객체를 사용하면 작은 단위의 모듈 하나를 테스트하기 용이하다. 이번 포스팅에서는 아래 회원가입, 로그인 api에 단위 테스트를 적용해보자. const express = requ.. 2024. 6. 11.
[Express] Redis 클라우드 서버를 세션 스토리지로 사용하기 (redislabs) https://growth-coder.tistory.com/278 [Express] 쿠키 세션 방식으로 로그인 구현이번 포스팅에서는 쿠키, 세션 방식으로 로그인을 구현해보려고 한다. 세팅 패키지를 설치하자. npm install express express-session bcrypt dotenv passport passport-local mongoose express : express 서버express-session :growth-coder.tistory.com 이전 포스팅에서 쿠키, 세션 방식으로 로그인을 구현했었다. 이 때는 세션을 단순하게 메모리에 저장을 했었는데 이번 포스팅에서는 redislabs라는 redis 클라우드 서비스를 사용해서 메모리가 아닌 별도 저장소에 저장하려고 한다. 먼저 클라우드.. 2024. 5. 26.
[Express] passport 모듈을 통해 jwt 인증, 인가 구현 https://growth-coder.tistory.com/278 [Express] 쿠키 세션 방식으로 로그인 구현이번 포스팅에서는 쿠키, 세션 방식으로 로그인을 구현해보려고 한다. 세팅 패키지를 설치하자. npm install express express-session bcrypt dotenv passport passport-local mongoose express : express 서버express-session :growth-coder.tistory.com 이전 포스팅에서 passport 모듈을 사용해서 쿠키, 세션 방식으로 인증, 인가를 구현해보았다. 이번에는 passport 모듈을 사용해서 jwt 방식으로 인증, 인가를 구현해보려고 한다. 이번에 사용할 주요 모듈은 다음과 같다.passport .. 2024. 5. 21.
728x90
반응형