[2] 노드 기능

김지원·2021년 3월 17일
0

Node

목록 보기
2/2

2.1 REPL사용하기

자바스크립트는 스크립트 언어라서 즉석에서 코드를 실행 할 수 있습니다.

  • REPL 이라는 콘솔 제공
  • R(Read), E(Evaluate), P(Print), L(Loop)
  • 윈도우 명령 프롬프트에 node 입력 후 자바스크립트 코드 입력

2.2 JS 파일을 만들어 실행하기

  • 자바스크립트 파일을 만들어 통째로 코드를 실행하는 방법
  • helloWordle.js 를 만든후 node [자바스크립트 파일경로]로 실행로 실행

2.3 모듈로 만들기

모듈

노드는 자바스크립트 코드를 모듈로 만들 수 있습니다.

  • 모듈: 특정한 기능을 하는 함수나 변수들의 집합
  • 모듈로 만들면 여러 프로그램에서 재사용이 가능합니다.
//var.js
const odd = "홀수 입니다"
const even = "짝수 입니다"

module.exports = {
  odd,
  even,
};
//func.js
const {odd, even} = require('./var');

function checkOddOrEven(number) {
  if (number % 2) {
    return odd;
  }else {
    return even;
  }
}

2.4 노드 내장 객체 알아보기

2.4.1 global

  • 브라우저의 window와 같은 역할을 합니다.
  • 모든 파일에서 접근 가능 가능합니다.
  • window처럼 global도 생략 가능합니다.
    global.console.log()
  • global 속성에 값을 대입하면 다른 파일에서도 사용 가능합니다. (사용하지 않는 것이 좋음)
    global.message='안녕하세요'

2.4.2 console 객체

  • console.time console.timeEnd: 시간 로깅
  • console.error: 에러 로깅
  • console.log: 평범한 로그
  • console.dir: 객체 로깅
  • console.trace: 호출 스택 로깅

2.4.3

set 메서드에 clear 메서드가 대응됩니다.

  • set 메서드의 리턴 값(아이디)을 clear 메서드에 넣어서 취소할 수 있습니다.

  • setTimeout(콜백함수, 밀리초): 주어진 밀리초(1000분의 1초) 이후에 콜백함수를 실행합니다.

  • setInterval(콜백함수, 밀리초): 주어진 밀리초마다 콜백함수를 반복 실행합니다.

  • setImmediate(콜백함수): 콜백함수를 즉시 실행합니다.

  • clearTimeout(아이디): setTimeout을 취소합니다.

  • clearInterval(아이디): setInterval을 취소합니다.

  • clearImmediate(아이디): setImmediate를 취소합니다.

다음 예제의 콘솔 출력은??

//timer.js
const timeout = setTimeout(()=>{
  console.log('1.5초 후 실행');
}, 1500);

const interval = setInterval(()=>{
  console.log('1초마다 실행');
}, 1000);

const timeout2 = setTimeout(()=>{
  console.log('실행되지 않습니다');
}, 3000);

setTimeout(()=>{
  clearTimeout(timeout2);
  clearInterval(interval);
}, 2500);

const immediate = setImmediate(()=>{
  console.log('즉시 실행');
});

const immediate2 = setImmediate(()=>{
  console.log('실행되지 않습니다');
});

clearImmediate(immediate2);

'즉시 실행'
'1초마다 실행'
'1.5초 후 실행'
'1초마다 실행'

2.4.4 filename, dirname

  • __filename: 현재 파일 경로
  • __dirname: 현재 폴더 경로

2.4.5 moudle, exports

moudle.exports 외에도 exports로 모듈을 만들 수 있습니다.

  • 하나만 exports 할 경우는 module.exports 사용
  • 여러개 exports 할 경우는
    1번)
exports.odd = '홀수입니다';
exports.even = '짝수입니다';

2번)

module.exports = {
  odd,
  even
}
  • exports를 사용하고 moudle.exports를 또 사용하면 안됩니다.
  • 같이 사용하면 참조 관계가 끊기게 됩니다.

2.4.6 this

  • 전역 스코프의 this는 빈 객체가 됩니다.
console.log(this); //global?

function a() {
  console.log(this === global);
}
a();

console.log(this === module.exports)

결과:
{}
true
true

0개의 댓글