교육생 (58) 썸네일형 리스트형 웹 풀사이클 데브코스 TIL 26일차 유효성 검사(validation) 사용자가 입력한 값의 유효성 예시를 들어보자. userId: 값이 있어야하고 숫자여야한다. 사람 name: 숫자X,문자열, 2자 이상 Express에서는 외부모듈인 "express-validator"를 사용한다. https://www.npmjs.com/package/express-validator 채널 생성에 유효성 검사 적용 const {body, validationResult} = require('express-validator') /** * * 중간 생략 */ .post( [body('userId').notEmpty().isInt().withMessage('숫자 입력 필요'), body('name').notE.. 웹 풀사이클 데브코스 TIL 25일차 DB 모듈화 DB를 모듈화 해주기 위해서는 connection을 설정한 후 exports 해준다. // get the client const mysql = require('mysql2'); // create the connection to database const connection = mysql.createConnection({ host: 'localhost', user: 'root', password: 'root', database: 'Youtube', dateStrings : true }); module.exports = connection 그 후 다른 모듈에서 이렇게 불러와서 사용한다. const conn = require(.. 웹 풀사이클 데브코스 TIL 24일차 WorkBench mysql, mariaDB는 Mysql Workbench 라는 프로그램을 통해 GUI 접근이 가능하다. 다운로드 링크: https://dev.mysql.com/downloads/workbench/ 프로그램 설치가 되었으면 들어오는 메인 화면이다. MySQL Connections 옆에 있는 + 버튼을 눌러본다. 이와 같은 창이 뜬다. Connection Name을 원하는 이름으로 작성하고 나머지 설정은 그대로 둔다. 패스워드는 Store in Keychain을 눌러서 우리의 mariaDB 비밀번호를 입력해준다. 비밀번호를 키체인에 미리 입력하지 않고 하면 어째서인지 워크벤치가 Crash 되는 버그가 있다는 점도 참고. mariaDB에 접속한 화면이다. Schemas 탭을 눌러보면 우리가 .. 웹 풀사이클 데브코스 TIL 23일차 데이터 베이스 생성 테이블 이름은 기본적으로 복수형으로 작성권장 "Board" 스키마 생성 CREATE DATABASE Board; USE Board; 사용자 테이블 생성 CREATE TABLE users ( id INT NOT NULL AUTO_INCREMENT, name VARCHAR(30) NOT NULL, job VARCHAR(100), birth DATE, PRIMARY KEY (id) ); NOT NULL 은 값이 필수로 있어야 한다는 뜻. AUTO_INCREMENT 는 pk 등에 사용하는데 아이디를 자동으로 생성해준다. 마지막으로 primary key 는 id를 사용한다고 지정해준다. SHOW tables; 를 하면 생성된 테이블들이 출력되고 DESC users; 를 하면 그 테이블의 정보를.. 웹 풀사이클 데브코스 TIL 22일차 데이터베이스 데이터를 통합하여 효율적으로 관리하기 위한 데이터 집합체. 데이터를 구조화 하여 관리해서 데이터 중복을 막고, 효율적으로 빠른 데이터 연산이 가능하다. DBMS 데이터베이스를 운영하고 관리하기위한 시스템 SQL 데이터베이스에 연산을 요청하기 위해 사용되는 언어. 삽입, 조회, 수정, 삭제 등이 가능하다. RDBMS를 쓰는 이유 데이터 간 "관계"를 사용해서 원하는 값을 찾아낸다. 인간의 사고방식과 비슷 RDBMS PK(primary key): 기본키, 하나의 row를 유니크하게 구별할 수 있도록 해주는 키 정규화: 중복되는 데이터를 방지하기 위해 테이블을 분리. FK(foreign key): 다른 테이블의 기본키. 다른 테이블의 원하는 데이터를 얻어내기 위해 사용 데이터베이스 연관관계 테이블.. 웹 풀사이클 데브코스 TIL 21일차 Node.js 에서의 라우팅이란? Request(요청)이 날아왔을 때, 원하는 경로에 따라 적절한 방향으로 경로를 안내해주는 것. URL, method 에 따라 어떤 콜백함수를 호출하는가. 기존 코드 수정 먼저 app.js 를 만들어준다. // express 모듈 셋팅 const express = require('express') const app = express() app.listen(3000) // user-demo 소환 const userRouter = require('./routes/users') // channel-demo 소환 const channelRouter = require('./routes/channels') app.use("/", userRouter) app.use("/channel.. 웹 풀사이클 데브코스 TIL 20일차 빈 객체 확인하는 방법 Object.keys() for in lodash : isEmpty const obj1 = {} const obj2 = {message: "안 빔"} const num =1 const str1 = "one" const str2 = "" //문자열도 객체이다 console.log(Object.keys(obj1).length === 0) console.log(Object.keys(obj2).length === 0) console.log(Object.keys(num).length === 0) console.log(Object.keys(str1).length === 0) console.log(Object.keys(str2).length === 0) // true // false // tr.. 웹 풀사이클 데브코스 TIL 19일차 핸들러 핸들러라는 것은 광범위하게 사용되고 있다. 일반적으로 요청에 의해 호출되는 메소드를 의미한다. 자바스크립트에서는 익스프레스 콜백함수에 해당한다. HTTP request가 날아오면 자동으로 호출되는 메소드 IF 긍정문 조건문을 긍정문으로 표현해주는게 가독성 측면에서 낫다. if (youtuber == undefined){ res.json({ message : `요청하신 ${id} 번은 가입된 유튜버가 아닙니다.` }) } else{ const channelTitle = youtuber.channelTitle db.delete(id) res.json({ message : `${channelTitle} 님, 아쉽지만 여기까지네요..` }) } 이 코드를 if (youtuber){ const channe.. 이전 1 2 3 4 5 6 7 8 다음