Node는 브라우저 밖에서 실행되는 JavaScript의 실행환경이다.
Node는 JavaScript의 런타임.
자바스크립트 구문을 써서 서버 측에서 실행되는 코들르 작성할 수 있다.
Node로 할 수 있는 것.
터미널에서 node를 입력하고 엔터치면 꺽쇠가 나타난다.
여기가 Node REPL이다.
Read Evaluation Print Loop의 약어.
읽고 평가하고 출력한다. 그리고 그걸 반복.
크롬 개발자도구 같은 콘솔창이다.
여기에서 자바스크립트를 쓸 수 있음.
다만 브라우저가 아니기 때문에 DOM문서 객체 모델 같은것이 없다
document가 없다는 뜻. window도 없다.
최상위 전역 객체는 global이다.
global.setTimeout 이렇게 쓴다.
global을 붙이지 않아도 똑같음. 여기에 포함되어 있다.
브라우저에는 없는 기능이 있다. 운영체제와 파일, 폴더를 다룰 수 있음.
종료하려면 컨트롤 씨. 또는 .exit
Node REPL은 코드를 작성하거나 실행할 수는 없다.
대신 JavaScript 파일에서 코드를 작성할 수 있다.
abc.js 파일을 만들고 코드를 넣으면
node abc.js
로 코드를 실행할 수 있다.
process는 Node에서 사용하는 객체.
전역 범위에 있다. 사용하는 Node의 정보를 포함한다.
process에는 많은 객체와 메서드가 있다.
process.version 버전
process.release 사용중인 특정정보
process.cwd() 현재 작업 위치나 실행하는 node를 알려줌
process.argv 실행 시 인자를 받을 수 있다.
// node arg.js test1 test2
console.log(process.argv[0]); // process.execPath node를 실행할 수 있는 특성
console.log(process.argv[1]); // arg.js의 경로
console.log(process.argv[2]); // test1
console.log(process.argv[3]); // test2
File System 파일 시스템을 의미하는 모듈
파일을 생성하고 읽고 파일에 추가하고 새로운 파일을 만들 때 쓰이는 다양한 메서드가 있다.
const fs = require('fs')
fs를 쓰려면 이렇게 require로 가져와야 한다. fs는 내장되어 있다.
fs.mkdirSync('cats'); //동기방식 디렉토리 생성
파일 시스템은 동기 방식과 비동기 방식으로 작동한다.
비동기 방식은 완료되었다는 콜백을 마지막 인수로 받아들임.
동기 방식은 요청을 한 후 완료되어야지만 다음 동작으로 넘어간다는 것.