[Node.js] 모듈

슈가베어·2023년 6월 22일
0

Node

목록 보기
3/3

모듈

코드를 분리하여 관리하기 위한 방법이다.
프로젝트가 큰 경우 기능에 맞게 코드를 분리하여 관리하는 것이 필요하기 때문이다.

Node.js는 기본적으로 CommonJs방식을 따르며 모듈 단위로 각 기능을 분할 할 수 있다. 모듈은 파일과 1대1의 대응 관계를 가지며 하나의 모듈은 자신만의 독립적인 실행 영역(Scope)를 가지게 된다. 따라서 클라이언트 사이드 자바스크립트와는 달리 전역변수의 중복 문제가 발생하지 않는다.

모듈은 module.exports 또는 exports객체를 통해 정의하고 외부로 공개하고, 공개된 모듈은 require함수를 사용하여 import 한다.

모듈의 작성과 사용

exports 객체로 모듈 만들기
: 여러개의 프로퍼티 또는 메소드를 정의 할 수 있다

//students.js 작성
const name  = 'meg';
const age = 6;

exports.name = name;
extports.age = age;

//app.js 모듈 사용
const student = require('./students')
//student출력값 { name: ‘meg', age: 6 }

module.exports로 모듈 만들기
: 하나의 값(원시타입, 함수, 객체)를 할당하여 작성한다

  1. 함수를 할당하는 방식
//add.js 작성
module.exports = (a,b) => {
  return a+b;
// app.js 모듈 사용
  const add = require('./add');
  const result = add(1,2);
  console.log(result); // 3출력
  1. 객체를 할당하는 방식
//calc.js 작성
module.exports = {
  add(a, b){
    return a+b
  },
  minus(a, b){
    return a-b
  };
  
//app js 모듈 사용
const calc = require('./calc');

const result = calc.add(1,2)
console.log(result) // 3출력

require 사용
: require 함수로 모듈을 로드한다

  1. 의존성 패키지를 로드
    사용하려면 node_modules에 내려받아져 있어야 함
const dayjs= require('dayjs');
console.log(dayjs());
  1. 직접 작성한 모듈 로드
    my-module이,
    js 파일이면 => 해당 파일 로드
    디렉터리면 => my-module/index.js 파일을 로드
const myModule= require('./my-module');
console.log(myModule);

3.json 파일
object로 자동 파싱된다

// my-data.json을 가지고 있음
const myData = require('./my-data');
console.log(myData);
profile
Just do it!

0개의 댓글