본문 바로가기
  • 삽질하는 자의 블로그
Node.js(Express)

7. module.exports 와 exports

by 이게뭐당가 2023. 2. 18.

하나의 메인 함수를 exports 할때, module.exports 를 사용했다.

 

   ex) module.exports = router;

 


파일 안에 여러개의 함수를 exports 하고 싶을때 하나씩 exports 를 써서 export 했다.

    ex) exports.diaryValidation = diaryValidation
        exports.postUserDiary = postUserDiary
        exports.getUserDiary = getUserDiary
            ...

   

1.  "사실, 여러개의 각각 export 도 module.exports 를 사용 할 수 있고 이게 훨씬 깔끔하다."

    module.exports = {
        diaryValidation:diaryValidation,
        postUserDiary:postUserDiary,
        getUserDiary:getUserDiary
    }

 

2.  "심지어, 모던 자바스크립트는 저 : 도 지울 수 있다."

    module.exports = {
        diaryValidation,
        postUserDiary,
        getUserDiary
    }

 

3. 이렇게 export 한 함수들은, 필요한 곳에서 받아 사용한다.

 

< routes / diary-routes.js > 

    const express = require("express");
    const diaryContoller = require("../controllers/diary-controller");	// 받아서

    const router = express.Router();

    router.get("/:userEmail", diaryContoller.getUserDiary);		// 안에 있는 함수를 사용

    router.post("/insert", diaryContoller.postUserDiary);		// 안에 있는 함수를 사용

    module.exports = router;

 

 

4. 파일 자체를 받아 그 안의 함수를 사용하는 것이 아닌, 함수를 직접 뽑아 쓰는 것도 가능하다.

 

< routes / diary-routes.js > 

    const express = require("express");
    const {getUserDiary, postUserDiary } = require("../controllers/diary-controller");	 // 직접 뽑아 사용

    const router = express.Router();

    router.get("/:userEmail", getUserDiary);		// 직접 뽑아 사용

    router.post("/insert", postUserDiary);		// 직접 뽑아 사용
    
    module.exports = router;

댓글