TIL47 | 모듈 시스템

dabin *.◟(ˊᗨˋ)◞.*·2021년 9월 28일
0

Node.js

목록 보기
10/11
post-thumbnail

모듈이란?

모듈은 독립적인 하나의 소프트웨어다. Node.js는 파일 하나하나가 모듈로 기능한다.

모듈을 만드는 방법

Node.js의 모듈 시스템(require & module.exports)

  1. module.exports
//하나
function a(){};

module.exports = a;

//여러개
function a(){];
function b(){];

module.exports = {a:a, b:b}

여러개를 export할 경우 객체를 만들어 한번에 내보낸다. require을 할 경우 객체를 통째로 가져오기 때문에 객체접근방식을 통해 접근해 사용해야한다.

  1. exports 객체
exports.a = function(){};
exports.b = function(){};

이 문법을 사용하면 여러 개의 객체를 따로 exports할 때 사용할 수 있다. exports는 module.exports를 참조하고 있으며, 항상exports.name 문법으로 사용해야 한다.

ES모듈(import, export) 사용하기

브라우저는 import, export 문법을 채택했고, node.js에서도 이를 도입하게 되었다. Node.js에서 이 문법을 사용하기 위해서는 한 가지 과정을 거쳐야 한다.

//package.json
{...,
  type: 'module',
 ...
}
  • export : 함수, 객체, 원시값 내보내기
  • exports : 함수, 객체, 원시값을 객체의 형태로 내보내기
  • exports default : 분리되어 있는 파일 내 하나의 고정된 값만 내보내기
export const a = 1
export const b = 2
export const c = 3

import {a, b, c} from './경로/경로

------

const a = 1
const b = 2
const c = 3

export default a;

import abc from '/경로/경로'
//a값만 변수abc에 할당됨, export default는 내보낸 값만 가져올 수 있음

------

import categoryServices from './categoryServices';
import productService from './productService';
import userService from './userService';

export { categoryServices, productService, userService };
//여러개 내보내기

import { userService } from '../services';
//필요한 것만 사용하기

require은 module 객체에 값이 담기고 import는 값 자체를 가져온다는 것을 기억하자.

profile
모르는것투성이

0개의 댓글