inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스

nodejs express에서 type(commonjs,module) 관련 질문

해결된 질문

518

zeler1004

작성한 질문수 13

0

서버작동을 위한 node app.js를 실행할때에 dotenv를 require, import를 하면서 문의점이 발생했습니다.

 

//server.js

import { creatApp } from "./app.js";
import database from "./models/database.js";

const startServer = async () => {
  try {
    await database;
    const app = creatApp();
    const PORT = process.env.PORT;
    app.listen(PORT, () => {
      console.log(`server is listening on ${PORT}👌`);
    });
  } catch (err) {
    console.log(`Failed server connect❌`);
    database.destroy();
  }
};

startServer();
//database.js

import { createConnection } from "typeorm";
import dotenv from "dotenv";
dotenv.config();

const database = createConnection({
  type: process.env.DB_CONNECTION,
  host: process.env.DB_HOST,
  username: process.env.DB_USERNAME,
  password: process.env.DB_PASSWORD,
  port: process.env.DB_PORT,
  database: process.env.DB_DATABASE,
});

export default database;

 

이렇게 진행하면 정상적으로 서버가 정상적으로 작동하지만 database.js에서의 dotenv import 부분을 require방식으로 server.js에 옮겨놓으면 에러가 발생합니다.

근본적으로 commonJS(require)방식과 module(import)방식에 대해서 dotenv를 불러올때에 require를 쓰면 server.js에 적용할때는 정상적으로 작동하는데 import를 똑같은상황에서 적용하려면 왜 database.js로 넘어가야하는지 그게 궁금해졌습니다!

require와 import를 해올 때 전반적으로는 rquire는 동기적이고 import비동기적인 성질(?)때문이라고 하기에 영향이 있는건지.. 근본적인 이해가 되지 않아서요..ㅠㅜ

 

도움 부탁드리겠습니다 ㅠㅜ!!!!

javascript node.js express docker tdd rest-api nestjs

답변 1

0

노원두

안녕하세요! zeler1004님!

 

본 질문과 관련된 내용으로는 require와 import 둘 다 모두 정상 작동하는 것 처럼 보여요!

 

아래는 require를 사용한 결과입니다!

image

다음으로 아래는 import를 사용한 결과입니다!

image

따라서, 둘 다 정상 작동 하며 commonjs에서도 module 방식처럼 동일하게 default 내보내기를 사용하여 테스트 해 보세요!

commonjs에서 default 내보내기를 하는 방법은 module.exports 를 사용하시면 됩니다!

1

zeler1004

감사합니다 ^^ 제안주신 내용과 똑같이 할때는 작동이 됩니다! 이것저것 시도해보겠습니다 감사합니다(__)

그래프 ql 문서 사용할때 느낌표 남는거 어떻게 없애나요?

0

86

2

강의 전체 소스 코드를 받고싶습니다.

0

77

2

fontawesome 사용 문의

0

80

2

소스 코드 부탁드립니다~

0

87

2

깃 레포지터리 소스

0

87

2

커리큘럼12.css 정렬 에 나오는 과제 정답알고싶어요

0

74

2

10-01 Entity TypeOrmModule.forRoot 에 entities

0

89

3

강의 버전관련 문의입니다

0

104

2

Ubuntu 설치 관련

0

62

1

schema.gql 질문 드립니다.

0

51

1

서버 재실행시 Many to Many

0

102

3

input 관련 문의

0

90

2

Rest API 보다는 graphql이 주된 내용인데

0

134

2

강의 전체 소스코드 받을수있을까요?

0

156

1

도커볼륨 마운트 관련

0

127

2

findOne 타입스크립트오류

0

109

1

http => htrtps 호출 인증서 신뢰 오류

0

356

1

self-signed certificate in certificate chain 에러 발생

0

421

1

mongoose 설치 오류

0

143

1

특정 API, 특정 IP 허용 (단일경로에 CORS 활성화)

0

285

2

08-06

0

180

3

구조랑 패턴 관련해서 질문

0

126

2

mydocker

0

129

2

coolsms statuscode 2000 인데 전송안돼는 경우 확인.

0

156

1