저장을 습관화

230618 TIL 본문

공부/TIL

230618 TIL

ctrs 2023. 6. 18. 20:22

mongoDB, mongoose 사용 중 의아한 부분이 생겼다.

 

schema를 적은 파일 comment.js를 작성 중 아래와 같이 

...(중략)...
module.exports = mongoose.model("Commnet", commentSchema);

'Comment'가 아닌 'Commnet'으로 오타가 났는데도 다른 파일에서 가져다 사용하는데 아무런 지정이 없었다.

...(중략)...
const Comment = require("../schemas/comment.js");
...(중략)...

어떻게 이게 가능했을까 검색해보니 이유는 다음과 같았다.

 

 

module.exports = mongoose.model("Commnet", commentSchema);에서

 

module.exports는 Node.js에서 모듈을 내보내기 위해 사용하는 객체이며, 이 부분이 있어야만 다른 파일에서 이 모듈을 가져와 사용할 수 있다.

 

mongoose.model();는 mongoose.model 메서드를 사용하겠다는 뜻이며,

 

가장 중요한

("Commnet", commentSchema)는 파일의 상단에서 schema 객체를 선언했던 변수 commentSchema를

"Commnet"이라는 이름의 mongoose model로 등록하겠다는 의미이다.

 

다른 파일에서 이 모듈을 사용하기 위해서는 해당 내용이 적힌 파일의 경로가 필요하지

import export를 사용할때처럼 변수나 객체의 내용이 필요한 것이 아니다.

 

이 이름은 개발자의 유지보수를 원활히 하기 위한 내용이기에

심할경우 "a"나 "x"같이 아무런 이름으로 등록해도 서비스 운영에는 무방하다.

 

'공부 > TIL' 카테고리의 다른 글

230621 TIL  (0) 2023.06.22
230621 TIL  (0) 2023.06.21
230612 TIL  (0) 2023.06.12
230608 TIL - parentNode  (0) 2023.06.08
230608 TIL - 로컬 스토리지와 JSON과 unexpected token  (0) 2023.06.08