본문 바로가기
728x90

node.js23

Node.js의 EventEmitter EventEmitter는 node.js에 내장되 있는 옵저버 패턴의 구현이다. 어떤 종류의 객체를 이벤트 이름으로 정의된 특정 이벤트에 정기적으로 전달하는 리스너로 불리는 함수 객체를 실행한다. 예를 들어 fs.ResdStream은 파일을 열 때마다 이벤트를 호출한다. 이벤트를 내보내는 객체는 모두 EventEmitter 클래스의 인스턴스이다. 이 객체는 하나 이상의 함수를 이벤트로 사용할 수 있게 이름을 넣어 추가하는 eventEmitter.on()함수를 사용할 수 있다. 이 이벤트의 이름은 js 프로퍼티 키로 사용할 수 있는 모든 문자열이다. EventEmitter 객체로 이벤트를 호출할 때 해당 이벤트에 붙어 있는 모든 함수는 동기적으로 호출되며 호출을 받은 리스너가 반환한 결과는 어떤 값이든 무시.. 2021. 10. 1.
웹소켓 웹 소켓을 HTML5에서 새로 추가되었고 실시간 양방향 데이터 전송을 위해 만들어졌다. 웹소켓은 WS프로토콜을 사용하고 대부분의 최신 브라우저는 이를 지원한다. 노드에서 WS를 사용하는 대표적인 방법은 ws 또는 Socket.IO 패키지를 사용하는 것이다. 이 방식을 사용하면 한번의 연결 후 지속적으로 연결이 유지되서 업데이트가 발생하면 서버가 자동으로 클라이언트에게 알린다. 또 한 HTTP와 포트를 공유한다. Polling 웹 소켓이 나오기 이전에 실시간 데이터 전송을 위해 사용했던 방법이다. 이는 HTTP가 클라이언트->서버형태의 통신이므로 주기적으로 서버에 업데이트가 있는지 확인을 하고 있다면 반환하는 방식이다. Server Sent Events(SSE) 이 기술은 EventSource라는 객체를 .. 2021. 1. 21.
req, res 객체 req 1. req.app req객체를 통해 app객체에 접근한다 2. req.body body-parser미들웨어가 만드는 요청의 본문을 해석한 객체이다 3. req.cookies cookie-parser미들웨어가 만드는 요청의 쿠키를 해석한 객체다 4. req.ip 요청의 ip주소가 담겨있다 5. req.params 라우트 매개변수에 대한 정보가 담긴 객체 6. req.query 쿼리스트일에 대한 정보가 담긴 객체 7. req.signedCookies 서명된 쿠키들은 req.cookies대신 여기에 담긴다 8. req.get(header_name) 헤더의 값을 가져오고 싶을때 사용한다 res 1. res.app res객체를 통해 app객체에 접근한다 2. res.cookie(key, option) 쿠.. 2020. 11. 26.
라우터 그룹화 경로가 같지만 요청 메서드가 다른 경우 라우터를 그룹화 할 수 있다. router.get('/', (req, res) => console.log('get')); router.post('/' (req, res) => console.log('post)); 위 두 라우터를 그룹화 하면 router.route('/') .get((req, res) =>{ console.log('get'); }) .post((req, res)) => { console.log('post'); }); 2020. 11. 26.
728x90