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));
'NodeJs' 카테고리의 다른 글
TDD[4] TDD 이해 및 환경 구축 (0) | 2021.03.31 |
---|---|
TDD[3] REST API 이해와 설계 (0) | 2021.03.31 |
TDD[2] Express.js 역할 및 구조의 이해 (0) | 2021.03.31 |
NodeJS 서버 - 클라이언트 데이터 주고 받기 (ajax 통신) (0) | 2020.04.22 |
NodeJS require | xml2js 모듈 사용법 (기상청 정보 가져오기) (0) | 2020.04.21 |