Exploring Modules
require
모듈을 가지고 오는 방법 require()
-
app.js
1
const math = require("./math");
- 모듈을 절대 경로로 찾을 때는 모듈 이름을 ‘/’로 시작하면 된다. 예를 들어, require(‘home/marco/foo.js’)는 /home/marco/foo.js 파일을 로드한다.
- 모듈을 상대 경로로 찾으려면 모듈 이름이 ‘./’로 시작하면 된다. 즉, foo.js라는 파일에서 require(‘./circle’)라고 호출하면 같은 디렉토리에 있는 circle.js를 로드한다.
- ’/’이나 ‘./’로 시작하지 않으면 그냥 파일이 아니라 “코어 모듈”이나 node_modules 폴더에 있는 모듈을 찾는다.
-
math.js
1 2 3 4 5 6 7
module.exports = "hello"; //또는 const add = (x, y) => x + y; module.exports.add = add; //또는 exports.add = add; exports.square = square;
-
app.js 구조분해할당도 가능.
1
const { add, square } = require("./math");
exports는 module.exports의 참조이다. 모듈을 추가할 때만 사용할 수 있다. 생성자같은 단일 아이템을 export한다면 module.exports를 직접 사용해야 한다.
- require()는 module.exports를 리턴한다.
index.js
-
파일명 index.js는 entry point같은 역할을 한다. directory에서 main이 되는 파일이다.
-
require(file이 아닌 directory 이름)을 했을 때, 자동적으로 index.js에서 export한 파일이 불러진다.
npm
- npm i : local install
- npm i -g : global install
- js 파일에서 npm 기능을 쓰려면
1
const cowsay = require("cowsay");
cowsay라는 npm을 터미널에서 설치한 뒤 require로 불러옴
1
npm link cowsay
terminal에서 npm link로 연결해줌 -> node index.js로 실행했을 때 cowsay가 작동된다.
예제
npm에서 두 가지 패키지를 다운받아 사용해보기
- 문장을 입력받으면 어느 나라의 언어인지 나라이름을 3글자 코드로 반환해주는 franc
- 나라 3글자 코드를 국가 이름으로 반환해주는 langs
1
2
3
4
5
6
7
8
const franc = require("franc");
const langs = require("langs");
const input = process.argv[2];
const langCode = franc(input);
const language = langs.where("3", langCode);
console.log(language.name);
결과
node index.js "bonjour Vincent"
//French