Tiny Bunny
HTTP 메소드 차이에 따른 request 방식
·
📚 Notes/Error
🚨 문제 상황태그를 추가, 삭제하는 API를 연동하고 있었다.두 가지 모두 body에 { "tag_names" : ["힐링"]}동일한 형식으로 데이터를 받고 있다.  const addTag = async (tagName) => { await axios.post( `http://localhost:3000/mypage/favoritetags`, { tag_names: [tagName] }, { headers: { Authorization: `Bearer ${token}` } } ); }; const removeTag = async (tagName) => { const prevActiveTag = [...activeTag]; // 기존 상태 저장 ..
[TIL] Week 9 주문 API
·
🕊️ DevCourse/Backend
✍🏻 설계DB 설계 ERD 설계 🗂️ DB 생성테이블 생성 FK 제약조건 생성 이렇게 FK의 제약조건의 이름을 나만의 규칙에 맞게 설정하는 것을 컨벤션이라고 한다.  🔖 주문 SQLitems 👉🏻 orderedBook 테이블에 INSERTdelivery 👉🏻 delivery 테이블에 INSERTtotalQuantity, totalPrice, userId, firstBookTitle 👉🏻 orders 테이블에 INSERT orderedBook 테이블은 order의 id값을 필요로 하고orders 테이블은 delivery의 id값을 필요로 하기 때문에delivery → orders → orderedBook순으로 INSERT 해주어야 한다. 1. delivery 테이블 INSERT ( 배송 정..
[TIL] Week 9 장바구니 API
·
🕊️ DevCourse/Backend
🛒 장바구니 테이블 생성 CREATE TABLE Bookshop.cartItems ( id INT NOT NULL, book_id INT NOT NULL, num INT NOT NULL DEFAULT 1, user_id INT NOT NULL, PRIMARY KEY (id)} book_id는 books 테이블의 id를, user_id는 users테이블의 id를 FK로 삼고 있으니 지정해주어야 한다.그런데 에러가 발생했다.  🚨 Operation failed: There was an error while applying the SQL script to the database. ERROR 1005: Can't create table Bookshop.cartItems (errno..
[TIL] Week 8 도서 상점 좋아요 API
·
🕊️ DevCourse/Backend
📔 ERD좋아요 테이블에 어떤 회원이 어떤 도서에 좋아요 했는지 id값들을 FK로 저장 🎈 테이블 생성누가 좋아요를 눌렀는 지 알기 위해서는 로그인한 유저가 좋아요를 눌러야 한다.로그인을 했다면 토큰을 가지고 있을 것이고 해당 토큰으로 좋아요 누른 유저를 파악할 수 있다. 우선 토큰은 나중에 구현하기로 하고 유저 id값을 body에 넣어 구현해보도록 하겠다. ❤️ 좋아요 추가 APIconst addLike = (req, res) => { const {liked_book_id} = req.params; const {user_id} = req.body; let sql = `INSERT INTO likes (user_id, liked_book_id) VALUES (?, ?);`; le..
[TIL] Week 5 빈 객체 확인 & 로그인, 채널 API
·
🕊️ DevCourse/Backend
✅ 빈 객체 확인하는 방법Object.keys()for in 문lodash 라이브러리 _ isEmpty 1️⃣Object.key()Object.keys(객체명)파라미터로 받은 객체의 key 목록을 배열로 반환해주는 함수 const obj1 = {}const obj2 = { message : "안 빔"}console.log(Object.keys(obj1)) // [] -> length === 0console.log(Object.keys(obj2)) // [ 'message ] -> length === 1console.log(Object.keys(obj1).length === 0) // trueconsole.log(Object.keys(obj2).length === 0) // false따라서 key 목록의 ..
[TIL] Week 4 백엔드 기초 : API 실습 _ params, querty, map
·
🕊️ DevCourse/Backend
📘 Paramsapp.get('/products/:n', function(req, res) { res.json({ num : req.params.n })}자세히 보면 숫자가 문자열로 반환되고 있다.  if ((req.params.n - 10) > 5) { console.log("url로 전달받은 숫자가 10보다 크네요.")}하지만 연산을 해보면 잘 작동하는 것을 볼 수 있다.  사실 자바스크립트는 문자로 된 숫자도 알아서 숫자로 인식하고 처리해 주는 능력을 가지고 있다. 하지만 다른 언어들은 불가능하기에 이왕이면 숫자는 숫자로 맞춰주는 것이 좋다. parseInt()를 사용하면 문자열인 숫자를 숫자로 변환해준다. 📗 Query유튜브 링크를 보면 https://ww..
[TIL] Week 3 백엔드 기초
·
🕊️ DevCourse/Backend
🌙 백엔드 구조백엔드에게 클라이언트란사용자백엔드에게 바로 요청하는 것이 아닌 프론트엔드에게 먼저 요청 프론트엔드백엔드 입장에선 같이 서버에 존재하는 것이지만 프론트가 하나의 클라이언트 역할을 할 수도 있다.  웹 서버화면의 내용/데이터 등의 변동이 없는 정적 페이지에 대한 대응웹 어플리케이션 서버데이터 처리/연산을 통해 화면의 내용, 데이터가 변하는 동적 페이지를 처리 데이터베이스데이터를 통합하여 효율적으로 관리하기 위한 데이터 집합체  💻 백엔드 개발자가 하는 일, API API (Application Programming Interface): 똑같은 함수를 다시 만들 필요 없이 라이브러리 함수를 사용함으로써 라이브러리에 접근하기 위한 규칙을 정의한 것 ex. 지하철 정보를 제공하는 어플리케이션을 ..
민리버
'API' 태그의 글 목록