본문 바로가기

분류 전체보기

(80)
웹 풀사이클 데브코스 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..
자바스크립트 예외처리 자바스크립트 예외처리 여타 프로그래밍 언어들이 지원하는 것처럼 자바스크립트에서도 예외처리만을 위한 구문들이 준비되어 있다. 한번 알아보자 예외 Exception. 런타임 중에 발생하는 요류를 뜻한다. 구문 오류(Syntax Error) 와는 달리 컴파일 단계에서는 발견되지 않는다. 조건문 예외처리 if(array == undefined){ console.log('빈배열입니다') } else{ console.log(array) } 평범한 if else 문으로도 예외처리를 해줄 수 있다. 하지만 예외의 종류가 복잡해지면 곤란해질 수 있고, 또 코드를 읽는 입장에서는 if else 문이 예외처리 문인지 아니면 일반적인 조건문인지 구분하기 힘들 것이다. try catch try{ // 예외가 생갈..
웹 풀사이클 데브코스 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..
웹 풀사이클 데브코스 TIL 18일차 전체 조회 app.get('/youtubers', function(req,res){ let youtubers = {} db.forEach(function(value, key){ youtubers[key] = value }) res.json(youtubers) }) youtuber라는 객체를 만든 후 그곳에 forEach 문으로 값을 넣고 반환한다. forEach 향상된 for문이다. 먼저 배열에서의 활용은 다음과 같다. const arr = [1,2,3,4,5] arr.forEach(function(a, b, c) { console.log(`a: ${a}, b: ${b}, c: ${c}`) }) /* 출력값 a: 1, b: 0, c: 1,2,3,4,5 a: 2, b: 1, c: 1,2,3,..
웹 풀사이클 데브코스 TIL 17일차 POST 브라우저에서는 POST 테스트가 불가능하다. 따라서 POST를 테스트 하기 위해서는 Postman 이라는 프로그램을 사용한다. https://www.postman.com/ POST는 body 영역을 통해 데이터를 전달해야한다. Postman으로 body에 데이터를 싣는 방법은 다음과 같다. Body의 raw를 클릭하고 형식을 json으로 설정한다. 그리고 원하는 데이터를 json 형식으로 입력해준다. 백엔드 post의 예시코드이다. app.use(express.json) app.post('/test', function(req, res){ // body에 숨겨져서 들어온 데이터를 화면에 뿌려주기 console.log(req.body); console.log(req.body.messa..
웹 풀사이클 데브코스 TIL 16일차 객체 Map 저장 let laptop = { productName: "Laptop", price: 2000000 } db.set(1, laptop)문자열과 같은 방식으로 map에 저장할 수 있다. 객체를 api 로 전달 app.get('/:id', function(req,res){ let {id} = req.params id = parseInt(id) if(db.get(id) == undefined){ res.json({ message : "없는 상품입니다." }) } else{ res.json({ id : id, productName : db.get(id).productName, price : db.get(id).price }) } })w객체의 필드들을 꺼내서 id와 함께 전달하는 방식이..
웹 풀사이클 데브코스 TIL 15일차 req.params app.get('/products/:n', function(req, res){ // : -> URL로 매개변수를 전달해줄 건가 보다 // req.params // products/____ 빈칸에 오는 값을 n이라는 변수에 담아줘 res.json({ num : req.params.n }) }) 이 코드는 한가지 문제가 있다. 바로 자료형이 문자열이라는 점이다. params에서는 무조건 문자열을 반환한다. if(req.params.n > 10) { console.log("url로 전달받은 숫자가 10보다 크다."); } 민약 위와같은 코드를 넣고 url로 13을 입력했다고 치자. 분명 params의 자료형은 문자라고 했고 조건문이 맞지 않아야 한다고 생각할 수 있지만 콘솔에..