const router = express.Router(); 기존에 app = express() 그리고 app.use()로 했던 라우팅을 모듈화하기 위해 사용한다. 기존 app과 동일하게 라우팅을 한다. 리퀘스트를 받는 메서드로 use, get, post 가 있는데, use는 get post를 모두 받고, get과 post는 같은 path를 받더라도 다른 라우팅으로 구분된다. 인자는 'path 이름'과 콜백 함수이다. 메인 앱에서는 해당 라우트 파일을 import 해주고, app.use인자로 import해준 변수를 넣어주면 된다. 인자 앞에 특정 path이름을 넣어주면, 해당하는 공통 path로만 시작하는 path로 보내지고, 그 path에 해당하는 라우트 get 이나 post에서는 url path 구분시..
미들웨어 express 내에서 중간 처리함수 미들웨어를 통해서 request를 받고, response를 한다. 미들웨어 함수는 코드 line 순서대로 실행된다. const express = require('express'); const app = express(); //express로부터 객체 생성 app.use('/' ,(req,res,next)=>{}); //미들웨어 함수 express.listen(3000); // 서버 생성 use는 app의 메서드로서, 새로운 미들웨어 함수가 적용된다. 콜백 함수가 미들웨어 함수가 되고 next는 또다른 콜백함수로서 다음 미들웨어 함수를 호출하게 해준다. '/' 인자는 해당 미들웨어 함수가 적용될 route를 가리킨다. 주의점 미들웨어 함수는 next()를 호출하..
https://evan-moon.github.io/2019/08/01/nodejs-event-loop-workflow/ 로우 레벨로 살펴보는 Node.js 이벤트 루프 1년 전, 필자는 setImmediate & process.nextTick의 차이점에 대해 설명하면서 Node.js의 이벤트 루프 구조에 대해 살짝 언급한 적이 있었다. 놀랍게도 독자 분들은 원래 설명하려고 했던 부분보다 이벤트 �� evan-moon.github.io
노드 js의 비동기 실행 예시 아래 코드는 createServer의 콜백 함수 내부이다. 해당 조건문을 들어갔다면 req.on의 콜백함수들을 먼저 실행하는 게 아니라, req.on의 콜백함수들을 내부적으로 먼저 등록해놓고, 그 아래의 코드부터 실행해준다. 따라서 res.setHeader와 res.end가 아래에서 먼저 실행되고 그 후 콜백함수 내의 리다이렉션이 실행되므로 에러가 난다. // createServer 콜백함수 내부 if(url ==='/message' && method === 'POST' ){ const body=[]; req.on('data', (chunk)=>{ console.log(chunk); body.push(chunk); }); req.on('end' , ()=>{ // 해당 콜백..