[Node.js] 동기/비동기, 콜백함수, 패키지 매니저와 PM2 사용법
1. 동기/비동기
fs.readFile(path,option,callback) vs fs.readFileSync(path,option)
비동기 동기
동기에서는 Sample.txt를 읽고 나서 C를 실행할 수 있었지만, 비동기의 경우 Sample.txt를 읽는 것과 상관없이 C를 실행했기 때문에 순서가 다르게 나온다.
2. Callback 함수
자바스크립트에서는 변수에 함수를 할당할 수 있습니다. 따라서 변수에 할당된 함수를 다른 함수의 파라미터로 전달할 수 있습니다. 이렇게 파라미터로 전달된 함수를 다른 함수의 내부에서 호출하는 것이 콜백 함수입니다.
참조 : Do it! Node.js 프로그래밍 : 실제 서버로 구동 가능한 코드로 배운다! [전면개정판]
자바스크립트는 함수의 이름을 미리 정한 상태에서 불러주는 방식과
function a(){
console.log('A');
}
a();
변수 a에 함수를 받아서 불러주는 방식이 있다.
var a = function (){
console.log('A');
}
a();
function slowfunc(callback){
callback();
}
slowfunc(a);
이 때 오랜시간 후에 부를 slowfunc라는 함수에 callback이라는 인자를 받는 함수를 사용한다.
callback이라는 함수는 a함수를 부르고 콘솔에 A가 출력된다.
3. 패키지 매니저와 PM2
npm : Node Package Manager
오늘 새로 깔아볼 npm
: PM2 - node.js를 하나하나 껐다켰다를 반복할 필요 없이 변화가 생기면 자동으로 껐다 켜주는 역할
PM2 - Home
Advanced process manager for production Node.js applications. Load balancer, logs facility, startup script, micro service management, at a glance.
pm2.keymetrics.io
npm install pm2 -g
→여기서 -g는 내가 깔고 있는 소프트웨어가 독립된 존재로 컴퓨터 내에서 쓰일 수 있도록 한다를 의미
pm2 start
pm2 monit
pm2 list
pm2 stop
pm2 start --watch
pm2 log
pm2 kill
restart되면서 log까지 볼 수 있는 것
pm2 start main.js --watch --no-daemon
restart되지 않으면서 log까지 볼 수 있는 것 - passport/session을 사용할 때 필요
pm2 start main.js --watch --ignore-watch="data/* sessions/*" --no-daemon
참조한 생활코딩 URL :
https://opentutorials.org/module/3549/21132