모듈은 독립적인 하나의 소프트웨어다. Node.js는 파일 하나하나가 모듈로 기능한다.
//하나
function a(){};
module.exports = a;
//여러개
function a(){];
function b(){];
module.exports = {a:a, b:b}
여러개를 export할 경우 객체를 만들어 한번에 내보낸다. require을 할 경우 객체를 통째로 가져오기 때문에 객체접근방식을 통해 접근해 사용해야한다.
exports.a = function(){};
exports.b = function(){};
이 문법을 사용하면 여러 개의 객체를 따로 exports할 때 사용할 수 있다. exports는 module.exports를 참조하고 있으며, 항상exports.name 문법으로 사용해야 한다.
브라우저는 import, export 문법을 채택했고, node.js에서도 이를 도입하게 되었다. Node.js에서 이 문법을 사용하기 위해서는 한 가지 과정을 거쳐야 한다.
//package.json
{...,
type: 'module',
...
}
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는 값 자체를 가져온다는 것을 기억하자.