inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지

라이브러리 코드 타이핑하기

ES모듈 전환 질문

해결된 질문

272

roider2316

작성한 질문수 52

0

제가 지금까지 이해한 바로는, esModuleInterop를 true로 설정하면 CommonJS모듈에서 내보내기 한 것들을 ES모듈의 내보내기 한 것으로 변환 시켜주는데 CommonJS에선 module.exports나 exports.변수 나 둘 다 하나의 객체로 담겨져 보내지니 ES모듈의 내보내기로 전환될 땐 무조건 Default Export 방식으로 전환되는 것으로 알고있습니다. 그래서 ES모듈로 가져오는 것으로 바꿔줄 때에도 그냥 Default Export 를 가져오는 방식으로만 변환해주면 되는 것으로 아는데

const { Strategy: LocalStrategy } = require("passport-local");
이 부분을
import { Strategy as LocalStrategy } from "passport-local"
이렇게 Named Export를 가져오는 방식으로 바꾸는 것이 가능한 게 이해가 되질 않습니다.

import Strategy as from "passport-local" 이렇게 가져와서 따로 구조분해를 해야 하는 것이 아닌가요?

node.js mysql mongodb express typescript socket.io jwt

답변 1

1

제로초(조현영)

import { Strategy as LocalStrategy } from "passport-local"

이거 자체가 module.exports를 가져와서 구조분해를 했다는 의미입니다

0

roider2316

아 제가 잘못 이해한 부분이 있었네요. 감사합니다.

0

roider2316

passport 모듈은

import passport from "passport"; 

이렇게 가져왔고 passport-local 모듈은

import { Strategy as LocalStrategy } from "passport-local";

이렇게 가져왔는데 왜 다르게 가져오는 것인지 아직 이해가 되지 않습니다.

모듈의 소스코드를 봐서 어떻게 CommonJS내보내기를 했는지를 봐야 하는 것인지, @types의 소스코드를 봐서 어떻게 ES내보내기를 했는지를 봐야 하는 것인지, 아니면 가져오는 방식에 맞춰서 타입스크립트가 알아서 변환시켜주는 것인지 모르겠는데 뭘 보고 판단해야 하나요?

1

제로초(조현영)

import passport는 module.exports = passport를 가져온 것이고

import { Strategy }는 exports.Strategy나 module.exports.Strategy를 가져온 것이죠.

0

roider2316

이해되었습니다. 감사합니다.

깃헙 질문

0

82

2

강의 1-1 수업노트의 로드맵 링크가 작동하지 않습니다.

0

76

1

aws - lightsail 이용 관련

0

58

1

4강 http 서버 만들때 ESM방식으로 해도 될까요?

0

81

2

모듈 사용 시 단점이 있나요?

0

81

1

node.js 버전 및 typescript 적용 문의

0

95

2

12.7. 방장기능(강퇴) 질문드립니다.

0

80

2

12.7 socket.js코드 그대로 뱃겨서 했는데, socket.request.session.color가안나오네요

0

69

1

12.7 코드 그대로 뱃겨서 햇는데 스샷같이 오류가뜹니다.

0

75

2

12.7.1스스로 해보기 질문되나요

0

95

3

시퀄라이즈 실습하기 질문드립니다.

0

196

9

<7-5. 시퀄라이즈 사용하기>수업 질문 드립니다.

0

97

2

크롬에서 user id를 인풋에 입력하고 등록하면 404 에러처리 페이지가 뜹니다.

0

113

2

구매 결제관련 질문입니다 !

0

123

1

다수의 supertest 가 실행될 때 force:true로 인한 DB 초기화 문제

0

133

2

node 설치 방법이 전혀다르게 바뀐것 같습니다.

0

152

2

12강 깃허브에 있는 12.7 chat.html 복붙했는데 css오류

0

122

2

무료/프리미엄 동시 소유 시 질문

0

117

1

비주얼 스튜디오 코드로 계속 진행해도 괜찮을까요?

0

135

2

10강 cors에러 localhost:4000으로 접속했을때 에러

1

159

2

webstorm 해결할 수 없는 변수 문제

0

155

2

혹시 몽고DB 쓸거면 MySQL 강의 스킵해도 되나요?

0

149

2

LightSail 실행 중 오류 질문드립니다!

0

204

2

RedisStore 사용법 질문

0

133

2