Javascript

Node.js - 모듈/동기/비동기

모듈 생성

 

모듈은 최소 한가지 이상의 기능을 갖는 코드 덩어리이다. 특정 기능을 수행하는 코드를 별도로 분리시켜 모듈로서 관리하면, 코드의 재활용성이 높아진다. nodejs에서는 파일 하나하나가 모듈이 될 수 있다.

 

두 수를 더해주는 모듈을 만들어 본다면,

// math.js

function sum (a, b){
  return a+b;
}

module.exports = {
  sum: sum
}

math라는 모듈을 만들고 다른 곳에서 사용할 수 있도록 exports 해준다.

 

// index.js

const math = require('./math.js');

const result = math.sum(1, 2)

console.log(result)

require 메서드를 통해 외부 모듈을 불러올 수 있다. nodejs에는 http, fs와 같은 기본 내장 모듈도 많다.

 

동기/비동기

 

아래 메서드를 이용해서 동기와 비동기처리를 확인해보자. 

 

readFile()

readFileSync()

const fs = require('fs');

// 동기
const data = fs.readFileSync('./data.txt', 'utf-8');

// 비동기
fs.readFile('./data.txt', 'utf-8', (err, data) => {
  console.log(data); // 3
});

console.log(data); // 1
console.log('Hello'); // 2

// 출력 결과
// This is data file. // 1
// Hello // 2
// This is data file. // 3