분류 전체보기
-
개인과제 : 시퀄라이저 include이제 막 슬픔 없이 십오 초 정도가 지났다 2022. 10. 11. 16:06
include:[모델명] associate 되어 있는 모델을 따라 모든 정보가 다 나온다. const express = require("express"); const authMiddleware = require("../middlewares/auth-middleware"); const { Users } = require("../models"); const { Posts } = require("../models"); const router = express.Router(); //...생략 //게시글 상세 조회 : 토큰필요 없음. router.get("/:postId", async (req, res) => { try { const postNum = req.params.postId; if (!postNum) {..
-
개인과제 : sequelize 세팅이제 막 슬픔 없이 십오 초 정도가 지났다 2022. 10. 11. 10:52
//npm 이니셜라이즈, -y는 초기 설정 넘어가는 것 npm init -y //app.js 생성 touch app.js //걍 합쳐서 한번에 쳐도 됨 yarn add express sequelize yarn add express sequelize-cli yarn add express mysql2 //Seqeulize 초기화하기 npx sequelize init //Sequelize의 Migrations 및 Models 생성하기: 강의 예시자료 npx sequelize model:generate --name NaverUsers --attributes id:string,password:string,nickname:string,profileImage:string,gender:tinyint npx sequel..
-
개인과제 : ERD 작업 - 좋아요 테이블의 경우이제 막 슬픔 없이 십오 초 정도가 지났다 2022. 10. 11. 10:14
ERD Entity Relationship Diagram 매체, 매개를 다루는 것은 사용자의 경험을 디자인하는 일이다. 건축, 음악, 서사, 이미지, 그리고 그것에 부여된 시간. 그리고 매개의 디자인은 계열의 작업이 있고 통합의 작업이 있다. ERD는 계열의 작업이다. 나는 이 범주들을 사랑한다. 계열, 은유, 압축 등. (세상에 아직도 50년전 언어학의 구분이라니. 그런데 더 나아간 구분을 아직 접하지 못했다.) 웹의 경험으로부터 필요한 데이터와 그 범주를 찾을 수 있다. 카테고리, 게시글, 댓글, 유저, URI, 그리고 그 관계. 어떤 데이터들이 어떤 범주로 어떻게 관계를 맺는가? 강의에서 제공된 네이버 카페의 ERD. 주의할 점은 화살표가 기왕의 집합론의 그것과는 반대로 그려진다는 것. 예컨대, 카..
-
SQL : group by, order byMySQL 2022. 10. 9. 23:09
select name, count(*) from users group by name; 통합체로 사고하는 우리의 언어로 풀면 이런 순서다. from -> group by -> select from users :테이블 데이터를 가져오고 group by name : 테이블 에서 같은 이름끼리 합치고 select name, count(*) : 이름과 count(*) 출력. 여기서 카운트는 이름별로 그룹된 것들의 카운트. 매우 직관적인 응용형태들 : 최소, 최대, 평균, 합, 소수점 자릿수 반올림 order by 오름차순 내림차순 사람의 순서로 푼다면 이렇다. from -> where -> group by -> select -> order by 테이블을 가져온 후, 조건으로 거르고, 어떤 조건으로 뭉치고, 그걸 ..
-
SQL : 제외, 범위, 포함, 문자열패턴검색 in, like, distinct, limit, countMySQL 2022. 10. 9. 22:33
포함조건 : in select * from checkins where week in (1,3); week 칼럼의 1, 3주차 데이터. 문자열패턴 조건 : like select * from users where email like '%daum.net'; 제한조건 : Limit select * from orders where payment_method = 'kakaopay' limit 5; 중복 제이터 제외 가져오기 : Distict select distinct(payment_method) from orders; 상식적으로 select를 하면서 중복제거(distinct)를 하고 count를 하는 것이다. Count select count(*) from orders 기타 매우 직관적인 응용법들 위는 gmail..
-
2022_10_09TIL WIL 2022. 10. 9. 17:00
에러 로그 고맙습니다. 항해측에서 사후적으로 전달해준 예제 파일의 이 에러로그. catch문 내부의, 처음 봤을 때 뭔지 몰랐던 그것. // 게시글 삭제 router.delete("/:postId",authMiddleware, async (req, res) => { try { const postId = req.params.postId; const {userId} = res.locals.user; const isExist = await Posts.findByPk( postId ); if (!isExist || !postId) { res.status(404).json({ message: '게시글 조회에 실패하였습니다.' }); return; } await Posts.destroy({ where: {postI..
-
개인과제 : PATCH method를 처음 구현해본 기념이제 막 슬픔 없이 십오 초 정도가 지났다 2022. 10. 7. 16:06
//순서 바꾸기 : 자기(todo) order를 위 아래로 이동할 때 //이동할 자리가 비었으면? 그냥 그 order로 저장. //이동할 자리에 다른 targetTodo가 있으면, 걔의 order(targetTodo.order)를 자신의 order(todo.order) 로 바꾸기 router.patch("/todos/:todoId", async (req,res)=> { const {todoId} = req.params; const {order} = req.body; const currentTodo = await Todo.findById(todoId).exec(); if(!currentTodo){ throw new Error("존재하지 않는 todo 데이터입니다.") } if(order){ const ta..