본문 바로가기

728x90

기타/Express.js

(5)
socket io namespace room(1) 오늘은 socket.io를 디테일하게 사용할 수 있게 해주는 namespace에 대해 알아보도록 하겠습니다. 서버와 클라이언트가 연결되면 실시간 데이터 공유가 가능한데요. socket을 그냥 사용하면 데이터가 모든 socket으로 들어갑니다. 모든 노드가 연결되어 있다고 생각하시면 됩니다. 특정 노드끼리만 연결해주는 것이 namespace입니다. room도 많이 쓰이는데요. room은 namespace의 하위 개념으로 namespace안에 있는 소켓들을 room으로 나눌 수 있습니다. room은 다음 차시에서 배우도록 하겠습니다. 예시를 통해 알아보도록 하겠습니다. var express = require('express') var http = require('http'); const { Socket } ..
express socket.io 기본 사용법(2) socket.io는 이벤트를 통해 데이터를 교환합니다. emit과 on함수를 사용해합니다. socket.emit('이벤트 이름', data), 이를 통해 이벤트를 발생시킵니다. socket.on('이벤트 이름', function(data){}), 이벤트를 받아 처리할 수 있습니다. 서버에서 클라이언트로 클라이언트에서 서버로 데이터를 보낼 수 있습니다. 전자의 경우 서버에 이벤트를 등록하고 클라이언트에서 이벤트를 발생시킵니다. 후자의 경우 클라이언트에 이벤트를 등록하고 서버에서 이벤트를 발생시킵니다. 서버에서 클라이언트로 데이터를 보내는 것부터 예제를 통해 알아보도록 하겠습니다. 아래 코드는 서버 코드입니다. hi라는 이름의 이벤트에 객체 데이터를 담아 보냅니다. var express = require('..
express socket.io 기본 사용법(1) 실시간 서비스를 제공함에 있어서 http방식은 한계가 있습니다. 이를 해결하기 위해 socket을 사용합니다. socket은 실시간 분석, 메시지, 채팅 등 실시간으로 데이터를 교환해야 하는 서비스에 사용합니다. 실시간 웹 서비스를 만들기 위해 웹소켓들이 나왔는데 다양한 웹 브라우저가 있어 호환에 문제가 많습니다. socket.io을 사용하면 호환되는 기술을 자동으로 선택할 수 있습니다. 오늘은 nodejs express에서 socket.io를 사용하는 방법에 대해 알아보도록 하겠습니다. 우선 패키지를 설치해주셔야 합니다. 다음 코드를 사용해 주세요. 'npm install socket.io' 사용방법에 대해 알아보도록 하겠습니다. http,socket.io서버와 http, socket.io 클라이언트가..
express 오류 처리 미들웨어 express는 오류처리를 미들웨어를 통해 한 번에 할 수 있습니다. 오류처리 함수는 3개가 아닌 4개의 인자를 가집니다. function(err, req, res, next){} 오류처리 미들웨어는 맨 마지막에 둬야 합니다. 그 이유는 만약 app.get 앞에 있으면 path로 해당 미들웨어에 접근하기 전에 에러 처리 미들웨어가 작동하기 때문입니다.(뒤에서 예시를 통해 알아보도록 하겠습니다.) next() 함수가 들어가는 이유는 next함수를 통해 어떤 내용을 전달하는 경우, express는 현재의 요청에 오류가 있는 것으로 간주하며, 오류처리와 관련되지 않은 나머지 라우팅, 미들웨어 함수를 지나칩니다. var express = require('express'); var app = express(); ..
express 미들웨어 만들기, body-parser, cors 사용하기 미들웨어란 기능을 애플리케이션에 제공하는 소프트웨어입니다. 오늘은 express에서 미들웨어를 사용하는 방법에 대해 알아보고 express에서 제공하는 body-parser와 cors 미들웨어를 사용해 보도록 하겠습니다. express의 미들웨어는 app.HTTP메서드("미들웨어 함수가 적용되는 경로", 미들웨어 함수)로 이루어져 있습니다. app.use, app.get, app.post를 사용하는 경우가 많습니다. var express = require('express'); var app = express(); app.get('/', function (req, res) { res.send('Hello balmostory!'); }); app.listen(3000); 위의 코드를 실행하면 페이지에 제대로..

728x90