throw 문을 사용하면 예외를 던질 수 있고, 던진 예외는 try...catch 문으로 처리할 수 있다.
throw 'Error2'; // String
throw 42; // Number
throw true; // Boolean
throw {
toString: function () {
return '저는 객체예요';
},
};
try...catch 문은 하나 이상의 명령문을 포함하는 try 블록
, 그리고 try에서 예외가 발생할 경우 그 예외를 처리할 명령문을 담은 하나의 catch 블록
으로 구성한다.
Express 는 가장 인기있는 Node Node web frameworks이며, 표준 서버 프레임워크로 불리고 있다. Express 자체는 꽤나 최소한의 기능만 탑재하지만 개발자들이 거의 모든 웹 개발의 문제를 다루는 호환성있는 미들웨어 패키지를 만들어왔다. 쿠키, 세션, 사용자 로그인, URL 파라미터,
POST
데이터, 보안 헤더와 그외 많은 것들에 대한 라이브러리들이 있다. Express Middleware에서 Express 팀이 유지보수하는 미들웨어 패키지 리스트를 확인할 수 있다.
Express는 다음과 같은 메커니즘을 제공한다:
$ npm install express
socket.io 는 실시간 웹 애플리케이션을 위한 이벤트 기반 라이브러리이다. 웹 클라이언트와 서버 간의 실시간 양방향 통신을 가능케 한며 두 부분이 있다: 브라우저에서 실행되는 클라이언트 사이드 라이브러리, 그리고 Node.js용 서버 사이드 라이브러리.
$ npm install socket.io
$ npm install socket.io-client
const express = require("express");
const http = require("http");
const socketIO = require("socket.io");
const cors = require("cors");
const app = express();
app.use(cors());
const server = http.createServer(app);
const io = socketIO(server, {
cors: {
origin: "http://localhost:3000", // 허용할 도메인
methods: ["GET", "POST"], // 허용할 HTTP 메소드
},
});
io.on("connection", (socket) => {
console.log("새로운 클라이언트가 연결되었습니다.");
// 클라이언트로부터의 메시지 수신 및 브로드캐스팅
socket.on("message", (message) => {
console.log("새로운 메시지:", message);
io.emit("message", message);
});
// 클라이언트 연결 해제 처리
socket.on("disconnect", () => {
console.log("클라이언트가 연결을 해제하였습니다.");
});
});
server.listen(3001, () => {
console.log("서버가 3001 포트에서 실행 중입니다.");
});
각각의 터미널에서
$ node server.js
$ npm start
참고문서,
조건문, https://developer.mozilla.org/ko/docs/Web/JavaScript/Guide/Control_flow_and_error_handling
express node js, https://expressjs.com/ko/starter/installing.html
socket.io, https://socket.io/get-started/chat
본 후기는 유데미-스나이퍼팩토리 10주 완성 프로젝트캠프 학습 일지 후기로 작성 되었습니다.