[Node.js] Node.js 모듈의 작성과 사용
글 작성자: 망고좋아
반응형
🎯 [Node.js] Node.js 모듈의 작성과 사용
📝 모듈의 기본적인 작성법
// elice.js
const name = "elice";
const age = 5;
const nationality = "korea";
module.exports = {
name,
age,
nationality,
};
const student = require("./elice");
// student 출력값 { name: 'elice', age: 5, nationality: 'korea'}
module.exports = {
name,
age,
nationality,
};
// 변수명으로 export 하는 모듈 작성법
// - 모듈을 object로 만들고, 각 key-value를 지정해서 내보낸다.
exports.name = name;
exports.age = age;
exports.nationality = nationality;
- 모듈이 load될 때 사용될 값을 module.exports로 내보낸다.
📝 함수를 exprot하는 모듈 작성법
// elice.js
const name = "elice";
const age = 5;
const nationality = "korea";
// 모듈을 함수로 만들어서 모듈 사용 시에 값을 정할 수 있게 내보냄
module.exports = (name, age, nationality) => {
return {
name,
age,
nationality,
};
};
const student = require('./elice')('elice', 5, 'korea') ;
// student 출력값 { name: 'elice', age: 5, nationality: 'korea'}
📝 모듈의 사용 방법
require
함수를 통해 모듈을 load 할 수 있다.- 의존성 패키지, 직접 작성한 모듈 사용 가능
📕 require 동작의 이해
- require 할 때 모듈 코드가 실행된다.
- Node.js의 모듈은 첫 require 시에 cache, 두 번 실행하지 않는다.
- 두 번째는 메모리에 cache된 모듈을 가져다 쓴다.
- 모듈 코드를 여러 번 실행하기 위해선 함수 모듈로 작성해야 된다.
📕 npm 패키지
const dayjs = require('dayjs');
console.log(dayjs());
- 의존성 패키지들은
require('package-name')
로 load 할 수 있다. - 패키지를 사용하려면 node_modules에 내려받아져 있어야 한다!
📕 직접 작성한 모듈
const myModule = require("./my-module");
console.log(myModule);
- 직접 작성한 모듈은 현재 파일과의 상대 디렉터리로 load할 수 있다.
- my-module이
.js
파일인 경우 해당 파일 load된다. - my-module이 디렉터리인 경우 자동으로
my-module/index.js
파일 load된다. 그래서'./my_module
만 적어줘도 자동적으로 index.js파일을 load한다.
📕 함수형 모듈
const myFunctionModule = require("./my-function-module");
console.log(myFunctionModule(name, age, nationality));
- 함수형 모듈은 load한 경우 모듈이 바로 실행되지 않는다.
- 필요한 시점에 load된 함수를 실행하여 모듈을 사용할 수 있다.
📕 json 파일
// my-data.json 을 가지고 있음
const myData = require("./my-data");
console.log(myData);
- require로 json 파일도 load 가능하다.
- object로 자동파싱 된다.
🏷 요약
module.exports
를 사용하여 모듈을 작성할 수 있다.require
를 사용하여 의존성 패키지, 모듈, json 파일을 사용할 수 있다.- 모듈은 첫 require 시에만 실행하고 cache 되므로 여러 번 실행할 모듈은 함수형으로 작성해야 함
반응형
'프로그래밍 > Node.js' 카테고리의 다른 글
[Node.js] Express.js 동작 방식 (0) | 2021.12.02 |
---|---|
[Node.js] Node.js 웹 서비스 동작 방식, 정적 웹과 동적 웹 (0) | 2021.12.02 |
[Node.js] Node.js 모듈 (0) | 2021.12.02 |
[Node.js] npm과 npx는 무엇인가? (0) | 2021.12.02 |
[Node.js] Node.js 이벤트 루프 (0) | 2021.12.02 |
댓글
이 글 공유하기
다른 글
-
[Node.js] Express.js 동작 방식
[Node.js] Express.js 동작 방식
2021.12.02 -
[Node.js] Node.js 웹 서비스 동작 방식, 정적 웹과 동적 웹
[Node.js] Node.js 웹 서비스 동작 방식, 정적 웹과 동적 웹
2021.12.02 -
[Node.js] Node.js 모듈
[Node.js] Node.js 모듈
2021.12.02 -
[Node.js] npm과 npx는 무엇인가?
[Node.js] npm과 npx는 무엇인가?
2021.12.02