Web & Server(11)
-
쿠키와 세션
쿠키는 서버 측에서 클라이언트에게 보내주는 키-밸류 형식의 데이터이다. 이 데이터는 세션 관리, 개인화, 트래킹의 용도로 쓰인다. http 모듈을 사용할 때, 쿠키는 응답 헤더에 심어서 전송한다. 객체의 인자로 'Set-Cookie' : '키=밸류' 값을 전달한다. 전달하고 싶은 쿠키가 2개라면 배열로 전달한다. Session Cookie는 웹 브라우저가 종료되면 자동으로 소멸한다. 클라이언트가 자신이 가지고 있는 Session Cookie를 서버 측으로 전달했을 때, 서버는 request.header.cookie 값을 읽으면 되지만, 쿠키가 여러 개일 경우 단순 문자열로 저장되어 있다. 따라서 npm에 등록된 모듈 'cookie'의 cookie.parse를 이용하면 손쉽게 객체로 바꿀 수 있다. Per..
2022.05.19 -
REST API + MySQL2 연동 작업 시 자잘한 팁
app.post("/pathname", async (res, req) => { const promisePool = pool.promise(); await promisePool.query( `select email, password, count(*) from members where email = ?`, [email] ); }); 1. async를 함수 앞에 붙이는 것 잊지 않기 2. 쿼리문 작성 시 오직 백틱 + ? 만 사용하기. 백틱 + ${email} 로 사용 시 작동이 안 된다. 오류메시지도 띄우지 않고 그냥 인식 자체를 안하기에 헤매기 십상이었다. 3. mysql 쪽에서도 오류가 발생할 수 있음을 인지하기. 4. mysql 쿼리 작성 후 rows 값을 사용할 때 값 타입이 배열인지 객체인지 유의하..
2022.05.02 -
MySQL2 로 DB와 연동하고 promise, async 활용하기
우선 npm install mysql2 를 해주어야 사용할 수 있다. mysql2 모듈의 createPool(dbConf) 를 통해 특정 데이터베이스와 커넥션이 되었다. dbConf의 database 항목에는 MySQL 워크벤치에서 Create 된 Schema의 이름이 들어가야 한다. 서버가 클라이언트로부터 요청 받을 때 async함수로 요청이 들어가고 promise 객체가 생긴다. 그 객체 안에서 쿼리를 요청하고 결과를 await한다. try 안에 포함시킴으로써 catch에서 에러를 잡을 수 있다. 서버단 코드 const express = require("express"); const mysql = require("mysql2"); const app = express(); const dbConf = {..
2022.04.30 -
REST API Server + MySQL (CRUD) 서버와 DB 연동
일단 npm 에서 mysql api를 다운받아야 한다. 그 후, db.js 파일을 다음과 같이 만든다. 그리고 메인앱 파일에서 /members 라는 pathname으로 get 요청을 할 때 데이터베이스와 연결을 한다. 만약 연결을 할 때 에러가 났다면, throw err로 잡아준다. 에러가 없다면, mysql 커넥션을 통해 쿼리를 요청한다. 쿼리 및 db 사용이 끝나면 반드시 커넥션을 end()해야 한다. 아래는 post 방식으로 body 데이터를 db에 넘기는 방식이다. https://poiemaweb.com/nodejs-mysql MySQL 연동 | PoiemaWeb Node.js(express)와 MySQL 연동 poiemaweb.com
2022.04.30 -
http method (GET, POST)
https://velog.io/@yh20studio/CS-Http-Method-%EB%9E%80-GET-POST-PUT-DELETE Http Method 란? (GET, POST, PUT, DELETE) 평소에 코딩을 하면서 서버와 클라이언트가 소통을 하기 위해서 보통 Http를 이용을 하게 되었습니다. 그런데 GET, POST, PUT, DELETE 등 여러가지의 Http Method 가 존재하는데 명확하게 사용하고 있을까? velog.io https://velog.io/@songyouhyun/Get%EA%B3%BC-Post%EC%9D%98-%EC%B0%A8%EC%9D%B4%EB%A5%BC-%EC%95%84%EC%8B%9C%EB%82%98%EC%9A%94 Get과 Post의 차이를 아시나요? 제 질문에..
2022.04.30 -
서버 만들고 요청하기 http, express
더보기 Postman 으로 서버에 요청하기 1 : GET, POST, DELETE 등 요청 방식을 결정하는 드롭다운 2 : 요청받는 서버단에서 정한 임의의 분기문, pathname이라 한다. 서버단에서는 GET 방식의 "members"로 들어왔을 때 에 해당하는 작업을 이행한다. 3 : ?에 뒤이어 오는 문장을 쿼리문이라 한다. 서버단에서는 request.query 의 형태로 받는다. 4. request.body에 해당하는 부분이다. express에서는 구조 분해 할당으로 const { email, password, name } = request.body; 로 email 값을 받을 수 있다. http 방식 http 서버를 통해 요청하고 JSON으로 응답받기. 2번째 줄의 require("stream/co..
2022.04.30