저장을 습관화
230618 TIL 본문
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 |