본문 바로가기

node.js3

노드js Buffer&Stream Buffer에 대해 먼저 알아보겠습니다. 1 2 3 4 const buf = Buffer.from('Hello World') console.log(buf); //output: cs 위와 같이 기본 Buffer class를 사용해서 버퍼의 형태로 만들 수 있으며 buffer는 배열이기 때문에 buf[0] 이렇게 접근할 수 있습니다. buf.toString()을 통해 다시 Hello World로 변환시킬 수 있는데 두번째 인자로 인코딩 타입을 정할 수 있습니다. (defualt는 utf-8입니다.) Buffer의 초기화는 아래와 같습니다. 1 2 3 4 const buf2 = Buffer.alloc(5) console.log(buf2) //output: cs * allocUnsafe라는 함수는 버퍼 크기는 .. 2021. 5. 28.
노드js 파일/파일경로 관리하기 ES6 기준으로 dirname과 filename은 아래처럼 import를 이용하면 됩니다. (물론 require로 해도 상관없습니다.) 1 2 3 4 5 6 7 8 9 import path from 'path' import { fileURLToPath } from 'url'; const __dirname = path.resolve(); console.log(__dirname) const __filename = fileURLToPath(import.meta.url) console.log(__filename) cs __filename의 경우 .../.../.../.../main.js 이런식으로 나오게 됩니다. 만약 main.js라는 것만 출력하고 싶다면 1 2 3 4 const __filename = fil.. 2021. 5. 28.
node.js Interval과 nextTick 노드js는 싱글스레드로 동작하며 콜스택이 비어져있을 때마다 task queue에 있는 콜백함수들을 가져와서 실행시킵니다. 그런데 특정 콜백함수의 우선순위를 높이고 싶다면 nextTick함수를 사용할 수 있습니다. 1 2 3 4 5 6 7 8 9 10 import process from 'process' setTimeout(() => { console.log('timeout') }, 0) process.nextTick(() => { console.log("I'm first") }) cs 위처럼 원래라면 timeout이 먼저 발생하겠지만 nextTick함수를 통해 I'm first가 먼저 실행되게 됩니다. 다음은 Interval 함수입니다. 1 2 3 setInterval(() => { console.log.. 2021. 5. 27.