[Node.js] TIL

[Node.js] TIL

풀스택으로 구현하려다가 백엔드 부분이 어려워서 노드 공부 시작!

libuv: 비동기를 구현해준다. 비동기 IO, 이벤트 기반 라이브러리

동기면서 블로킹/ 비동기면서 논블로킹인 경우 2가지가 있음

노드 프로세스는 멀티스레드지만 직접 다룰 수 있는 스레드는 하나이기 때문에 싱글 스레드라고 표현

모듈

Node.js : module.export와 require

자바스크립트 모듈 : export default 와 import

module.export = {}

객체를 다른 파일에서 쓸 수 있게 해주는 모듈

module.export : 주로 한가지 return할 때 사용

export : 두 가지 이상 return할 때 사용할 수 있음

ex) export.odd = odd;

module.export와 export는 같이 사용할 수 없다.

전역스코프의 this === module.exports

파일을 처음 require로 불러올 때는 파일을 읽은 후 cache에 저장해놓고, 그 이후에 다른 파일에서 불러오면 해당 파일을 읽어서 불러오는게 아니라 cache에서 불러옴

Path

운영체제별로 경로구분자가 달라 폴더와 파일의 경로를 쉽게 조작하는 것을 도와주는 모듈

path.join() / path.resolve()

path.join(__dirname, '..', '/var.js') //절대경로가 있을 때 절대경로를 무시함'var.js' path.resolve(__dirname, '..', '/var.js') //절대경로가 있으면 절대경로 앞부분을 무시함

path.parse() : 파일 경로 분해

path.format() : 파일 경로 합치기

path.normalize() : 중구난방인 /와 \를 정리해줌

URL

┌────────────────────────────────────────────────────────────────────────────────────────────────┐ │ href │ ├──────────┬──┬─────────────────────┬────────────────────────┬───────────────────────────┬───────┤ │ protocol │ │ auth │ host │ path │ hash │ │ │ │ ├─────────────────┬──────┼──────────┬────────────────┤ │ │ │ │ │ hostname │ port │ pathname │ search │ │ │ │ │ │ │ │ ├─┬──────────────┤ │ │ │ │ │ │ │ │ │ query │ │ " https: // user : pass @ sub.example.com : 8080 /p/a/t/h ? query=string #hash " │ │ │ │ │ hostname │ port │ │ │ │ │ │ │ │ ├─────────────────┴──────┤ │ │ │ │ protocol │ │ username │ password │ host │ │ │ │ ├──────────┴──┼──────────┴──────────┼────────────────────────┤ │ │ │ │ origin │ │ origin │ pathname │ search │ hash │ ├─────────────┴─────────────────────┴────────────────────────┴──────────┴────────────────┴───────┤ │ href │ └────────────────────────────────────────────────────────────────────────────────────────────────┘

위에는 노드에서의 주소에 대한 명칭

밑에는 WHATWG에서의 주소에 대한 명칭

querystring : 주소에 데이터가 담겨있는 부분

searchParams : querystring이 문자열로 되어있기때문에 해당 문자열을 객체로 바꿔줌

Node.js에서는 setTimeout 0 대신 setImmediate를 사용

출처: Node.js 교과서

from http://yunred.tistory.com/89 by ccl(A) rewrite - 2021-12-31 20:27:20