NodeJs

TDD[1] Node.js 기본 구조 이해

코딩클로스 2021. 3. 31. 01:19

TDD 공부 목적

노드로 API 서버를 만들 수 있다.

테스트 주도 개발을 익힐 수 있다.

노드JS의 기초

1. 브라우저 밖에서 자바스크립트 코드를 실행할 수 있다.

2. 크롬에서 사용하는 V8엔진을 사용한다.

3. 이벤트 기반의 비동기 I/O 프레임워크

// readFileSync()

const fs = require('fs') //기본모듈

const file =fs.readFileSync('test.txt', {encoding : 'utf8'})

console.log(file);

const callback = (err, data) => {
    console.log(data);
}
fs.reafFile('text.txt', {encoding : 'utf8'}, callback);

문서에 보면 readfile은 세번째 인자로 callback 함수를 넣어주게 되있음.

비동기적으로 일을 처리하고 callback 함수를 호출하게 되있음.

이벤트루프가 계속 돌면서 파일을 읽어라 라는 명령을 받았을때 워커한테 파일읽는 작업을 위임을 하고 이벤트루프가 다른 이벤트를 수신하고 있을 때 워커는 계속 그파일을 읽고 있다가 워커가 파일을 다읽으면 콜백함수로 메인루프에게 알려줌

4. CommonJS를 구현한 모듈 시스템

기본 모듈

const util = require('util')

const name = 'World'
const msg = util.format('Hello %s', name);

console.log(msg);

써드파티 모듈

기본적으로 제공되는 모듈이 아니고 다른사람들이 만들어놓은 모듈을 사용하는것

예시)express

 

사용자 정의 모듈 

// math.js
const math = {
    add(a,b){
        return a + b;
    }
}
module.exports = math  


// index.js
const math = require('./math')
console.log(math.add(1, 2));