# node.js
node.js는 웹 브라우저가 아닌 환경에서도 자바스크립트 코드를 실행시켜주는 자바스크립트의 런타임, 자바스크립트의 실행환경(구동기)
node.js는
Chrome V8 Javascript
엔진으로 빌드된 Javascript 런타임 입니다
# npm
npm init
1
폴더안에 package.json 생성됨
index.js 파일 생성후 소스 작성
console.log("안녕 node js");
1
node로 실행
node index.js
1
# 패키지 스크립트
"scripts": {
"start": "node src/index.js"
}
1
2
3
2
3
스크립트 작성 후 실행 가능
npm run start
1
# 모듈 시스템
모듈을 생성하고, 불러오고, 사용하는 등의 모듈을 다루는 다양한 기능을 제공하는 시스템
- Common Js (CJS)
- ES Module (ESM)
- AMD
- UMD
# Common Js (CJS)
math.js
function add(a, b) {
return a + b;
}
function sub(a, b) {
return a - b;
}
module.exports = {
add,
sub,
};
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
index.js
const moduleData = require("./math.js");
console.log(moduleData);
console.log(moduleData.add(1, 2));
console.log(moduleData.sub(1, 2));
// 구조분해할당 가능
const { add, sub } = require("./math.js");
console.log(add(1, 2));
console.log(sub(1, 2));
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
# ES Module (ESM)
package.js 에
"type": "module"
1
추가
math.js
function add(a, b) {
return a + b;
}
function sub(a, b) {
return a - b;
}
export { add, sub };
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
index.js
import { add, sub } from "./math.js";
console.log(add(1, 2));
console.log(sub(1, 2));
1
2
3
4
2
3
4
함수 앞에 export를 적어줘도 동일하다
export function add(a, b) {
return a + b;
}
export function sub(a, b) {
return a - b;
}
export default function multiply(a, b) {
return a * b;
}
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
불러오기
import multiply from "./math.js";
// 이름 변경도 가능
import mul from "./math.js";
// 합치는것도 가능
import mul, { add, sub } from "./math.js";
1
2
3
4
5
2
3
4
5
# node.js 라이브러리 사용하기
- 라이브러리 : 프로그램을 개발할때 필요한 다양한 기능들을 미리 만들어 모듈화 해놓은것
npm i randomcolor
1
package.json
"dependencies": {
"randomcolor": "^0.6.2" // ^0 : 0점대 에서 1점대 버전 이전까지의 버전 중에 최신 버전으로 설치하겠다
}
1
2
3
2
3
라이브러리 불러오기
import randomColor from "randomcolor";
1
라이브러리에서 어떠한 값을 가져올 때는 경로를 명시하는게 아니라 from 뒤에 라이브러리의 이름만 명시하면 된다.
const color = randomColor();
console.log(color);
1
2
2
# npm i
npm install
npm i
1
2
2
package.json 의 dependencies의 정보를 기준으로 모든 패키지, 모든 라이브러리를 다시 다 설치해준다.