Express 7

0. socket.io, 기본 및 룸 소켓 사용하기

소켓.IO는 웹 페이지에서 클라이언트와 서버의 소켓 통신을 위한 라이브러리다.실질적으로 web에서는 서버에 요청을 보내고 응답을 받으면 통신이 끝나기 때문에 실시간 통신이 불가능하지만, socket.io는 특정 ms마다 계속 서버와 요청 응답 통신을 하기 때문에 실시간 통신이 된다.. (서버에서 계속 요청과 응답을 받기 때문에 부하가 좀 걸리게 되니 참고하는게 좋다.) 웹 페이지만 구현하다 보면 실시간 통신을 직접 다루는 일은 별로 없지만, 결국에는 개발 시 socket은 계속 사용하게 된다.서버 코드import { Server } from "socket.io";export default (server) => { //서버를 인자로 받을거다. 여기서 서버는 app.listen의 return 값이다. co..

Librarys/Socket.io 2024.09.12

5.express MongoDB 라이브러리로 MongoDB 사용하기

몽고 DB는 noSQL이기 때문에, MySQL을 다루는 sequelize보다 훨씬 사용이 간단하다.몽고 DB를 다루는 라이브러리는 대표적으로 몽고시와 몽고디비가 있는데 이번엔 MongoDB를 사용해봤다.다운로드npm i mongodb사용import { MongoClient } from "mongodb";// 몽고 DB 서버 URLconst url = 'mongodb://localhost:27017';// 데이터베이스 이름const dbName = 'mydatabase';// async를 위해 함수 작성async function 아무이름() { try { const client = new MongoClient(url); // 몽고 DB에 연결 await client.connect(); ..

Framework/Express 2024.09.12

4. express sequelize로 mySQL 사용하기

블로그 정리는 굉장히 힘들다..점점 설명이 짧아져도 이해해주길 바란다.우선 mySQL 다운로드와 데이터 베이스 생성, 계정 생성, 계정 권한 부여까지 다 했다는 가정하에 설명을하겠다.sequelize 사용하기npm i sequelizenpm i -D sequelize-clinpx sequelize initsequelize-cli는 npx sequelize init을 사용하기 위해 다운로드 한다.init을 하면 뭔가가 생기는 것을 볼 수 있을것이다.우선 config.json부터 수정하자{ "development": { "username": "계정", "password": "비밀번호", "database": "사용할 데이터베이스 이름", "host": "127.0.0.1", "d..

Framework/Express 2024.09.12

3. express multer로 이미지 저장하기

multer는 클라이언트에서 받는 자료를 컨트롤 해주는 라이브러리다.여러 기능이 있지만, 주인장은 이미지를 받기위해 사용했다.1. 멀터 기본 설정다운로드npm i multer멀터.js를 작성하자import multer from "multer";export const upload = multer({ //해당 멀터.js는 upload를 내보내줄거다. storage: multer.diskStorage({ //멀터가 받은 이미지를 저장할 경로를 설정해준다. //destination은 목적지를 설정해주는 함수다. destination: (req, file, callback) => { //req,file은 사용하지 않지만, 한번 콘솔로 확인해보는걸 추천한다. callback(null, "저장할..

Framework/Express 2024.09.12

2. express 미들웨어(middleware)

미들웨어란 간단하게 서로 다른 애플리케이션이 서로 통신하는데 필요한 소프트웨어이다.만약 개발자가 js express를 사용해, mySQL를 컨트롤 하려면?당연히 js 에서는 mySQL에서 사용하는 문법을 사용할 수 없다.. 당연하다. 언어가 다르니까.mySQL은 쿼리문이라고, 당연히 js에서 똑같은 명령어를 친다고 해도 알아들을 수 없다.여기까지는 그냥 단순히 전체적인 미들웨어의 개념이고 express 미들웨어는 원활한 작동을 위한 중간다리 역할을 하는 함수다.1. 전역레벨 미들웨어server.js 부분에 사용된 app.use를 예시로 들어보자.app.use(express.urlencoded({ extended: false }));app.use(express.json());app.use("/api", r..

Framework/Express 2024.09.12

1. express router 사용하기

router란 express에서 경로와 요청을 체계적으로 관리하기 위해 사용한다.express를 다운받았다면 딱히 다른 라이브러리가 필요하진 않다.router.js를 작성해보자import { Router } from "express";const router = Router();//router.레스트풀api("경로", 콜백함수); // restful api로 쓰면 헷갈릴까봐 한글로 적었다. get,post,patch,delete등 전부 사용할 수 있다.router.get("/", (req,res)=>{//기본적으로 req(받은 요청의 정보를 가진다)//req.params: URL 경로에서 전달된 매개변수//req.query: URL에서 쿼리 스트링으로 전달된 데이터//req.body: POST, PUT 요..

Framework/Express 2024.09.12

0. express 사용하기

express를 사용하기 위해선 express를 다운받아야 한다.물론 Node를 먼저 다운받아야 하지만, 다운받았다는 가정하에 진행한다.기본적으로 거의 필수로 사용되는 3개의 라이브러리가 있는데npm i express cors dotenvexpress : 말 그대로 express 라이브러리다.cors : 기본적으로, 웹 브라우저는 동일 출처 정책(Same-Origin Policy)을 통해 다른 출처에서 리소스를 요청하는 것을 제한하기에 그것을 풀어주기 위한 라이브러리다.dotenv : .env(중요한 값을 숨기기 위한 파일)을 사용하기 위해 필요하다.1. server.js 작성import express from "express";import cors from "cors";import dotenv from..

Framework/Express 2024.09.12