2. node.js 기능

2351 단어 NodeNode

자바스크립트는 스크립트 언어이므로 미리 컴파일을 하지 않아도 즉석에서 코드를 실행할 수 있습니다. 노드도 마찬가지로 입력한 코드를 읽고(read), 해석하고(eval), 결과물을 반환하고(print), 종료할 때까지 반복(loop)가 가능하여 REPL(Read Eval Print Loop)라 부릅니다.

node로 파일 실행하기

node [자바스크립트 파일경로]

확장자 .js는 생략 가능합니다.

모듈로 만들기

노드는 코드를 모듈로 만들 수 있어 재사용이 가능합니다.

require (가져옴)
module.exports (내보냄)

노드버전 9부터는 ES2015의 모듈 시스템을 사용할 수 있습니다.
require =>  import
module.exports => export default
하지만 파일의 확장자를 mjs로 지정해야하는 제한이 있습니다.
그러나 js확장자를 사용하면서 ES2015 모듈을 사용하려면 package.json에 type:"module"속성을 넣으면 됩니다.

노드 내장 객체

global

브라우저의 window와 같은 전역객체입니다.
모든 파일에 접근 가능합니다.
require함수도 global.require에서 global이 생략된 것입니다.

console

console객체는 보통 디버깅을 하기 위해 사용합니다.

timer

filename, dirname

filename: 파일 경로
dirname: 파일명

각 환경마다 파일 경로각 /,\를 구분자로 사용하고 있어 문제가 되므로 주로 path모듈을 사용합니다.

module, exports, require

module.exports, exports는 같은 객체를 참조하기 때문에 동일하게 동작합니다.

require.cache 객체에는 require.js나 var.js와 같은 파일 이름이 속성명으로 들어가있습니다.
한번 require한 파일은 require.cache에 저장되므로 다음번에 require할 때 새로 불러오지 않고 require.cache에 있는 것이 재사용됩니다.

require.main은 노드 실행시 첫 모듈을 가르킵니다.
현재 파일이 첫 모듈인지 알아보려면 require.main === module을 해보면 됩니다.

순환참조

순환참조시에 순환참조되는 대상을 빈객체로 만들어, 에러가 발생하지는 않고 빈 객체로 변경되어 예기치 못한 동작이 발생할 수 있으니 순환참조가 발생하지 않도록 주의하는 것이 중요합니다.

process

process 객체는 현재 실행되고 있는 노드 프로세스에 대한 정보를 담고 있습니다.

process.env

시스템의 환경변수
서비스의 중요한 키를 저장하는 공간

NODE_OPTIONS: 노드 실행할때마다 옵션들을 입력받는 환경변수

UV_THREAPOOL_SIZE: 사용하는 스레드풀의 스레드 개수 조절할 수 있게 가능

process.nextTick (콜백)

이벤트 루프가 다른 콜백 함수보다 nextTick 의 콜백함수를 우선으로 처리하도록 만듭니다.
process.nextTick은 promise와 같이 마이크로테스트에 따로 구분지어 있어, setTimeout, setImmediate보다 우선처리 됩니다.

process.exit (코드)

실행 중인 노드 프로세스를 종료합니다.

노드 내장 모듈

os

운영체제의 정보를 가져올 수 있습니다.

path

폴더와 파일의 경로를 쉽게 조작하도록 도와주는 모듈입니다.
path모듈이 필요한 이유는 운영체제별로 경로 구분자가 다르기 때문입니다.

url

인터넷 주소를 쉽게 조작하도록 도와주는 모듈입니다.

querystring

search부분을 사용하기 쉽게 객체로 만드는 모듈입니다.

crypto

좋은 웹페이지 즐겨찾기