til(21)
-
params [ TIL ] [ node.js ]
Problem req.params 가 빈 객체가 전달된다. // index.js const express = require("express"); const commentRouter = require("./comments"); const postRouter = require("./posts"); const router = express.Router(); router.use("/posts", postRouter); router.use("/posts/:_postId", commentRouter) module.exports = router; // comments.js router.post("/comments", async (req, res) => { try { const postId = req.params; ..
2023.06.24 -
async / await [ TIL ] [ node.js ]
Problem express 를 이용하여 간단한 게시판 api 를 만들던중 undefined 가 발생했다. Try router.post("/", async (req, res) => { console.log(req.body); try { const { title, content, userId } = postCreateValidation.validateAsync( req.body ); console.log(title, content, userId); const post = await Post.create({ title, content, userId, }); res.json(post); } catch (err) { if (err.isJoi) { return res.status(422).json({ messa..
2023.06.22 -
태스크 큐 이벤트루프(3) [ TIL ] [ Javascript ]
Problem 태스크 큐에 대해서 알아보장 Try 태스크 큐는 두가지 종류라고 한다. 첫번째는 마이크로 태스크 큐, 두번째는 태스크 큐 이렇게 두개의 태스크 큐가 존재한다. 마이크로 태스크는 자신을 생성한 함수 또는 프로그램이 종료됐고 JavaScript 실행 스택이 빈 후에, 그러나 사용자 에이전트가 스크립트 실행 환경을 운용하기 위해 사용하는 이벤트 루프로 통제권을 넘기기 전에 실행되는 짧은 함수입니다. - mdn web docs - 코드 실행 console.log("안녕하셈!"); setTimeout(() => { console.log("약 2초가 지났습니다."); }, 2000); setTimeout(() => { console.log("약 0초가 지났습니다."); }, 0); console.l..
2023.06.21 -
Web API 이벤트루프(2) [ TIL ] [ Javascript ]
Problem Web API 에 대해서 알아보장 Try Web API 는 브라우저에서 제공하는 API 로 DOM, Ajax, TimeOut 등이 있다. CallStack 에서 실행된 비동기 함수는 Web API 를 호출하고, Web API 는 콜백 함수를 테스크 큐에 넣는다. 코드 작성 console.time("첫번째 setTimeout"); console.time("두번째 setTimeout"); setTimeout(function timer() { console.log("2초가 걸릴까요?"); console.timeEnd("첫번째 setTimeout"); }, 2000); console.log("안녕하심니까"); setTimeout(function timeout() { console.log("5초가..
2023.06.20 -
호출 스택 이벤트 루프(1) [ TIL ] [ Javascript ]
Problem 호출 스택의 간단한 동작원리를 알아보장 Try 말 그대로 스택(LIFO)은 자료구조인데 호출 스택(call stack) 은 함수 호출의 실행 순서를 기록하는 스택 자료구조 이다. 함수가 호출되면 해당 함수의 실행 컨텍스트가 호출 스택의 맨 위에 추가된다고 한다. 그리고 함수 실행이 완료되면 스택에서 제거된다고한다. 호출 스택은 여러 함수들을 호출하는 스크립트에서 해당 위치를 추적하는 인터프리터(웹 브라우저의 자바스크립트 인터프리터같은) 를 위한 메커니즘입니다. 현재 어떤 함수가 동작하고 있는지, 그 함수 내에서 어떤 함수가 동작하는지, 다음에 어떤 함수가 호출되어야 하는지 등을 제어합니다. - MDN Web Docs - 실행 코드 function a() { console.log("함수 a..
2023.06.19 -
ES6 [ TIL ] [ Javascript ]
ES6 문법 ES6 는 ECMAScript(JS 표준 규격을 정의하는 기구) 2015 를 가리키는 용어이고 JS 의 버전 중 하나이다. ES6 는 ES5 의 후속 버전이다. ES5 vs ES6 변수 선언 - ES5: var 키워드를 사용하여 변수를 선언 - ES6: let, const 키워드를 도입해 블록 스코프 변수를 선언 화살표 함수 - ES5: function 키워드를 사용하여 함수를 정의 - ES6: 화살표 => 를 사용하여 간결한 함수 표현식을 만든다. 클래스 - ES5: 프로토타입 기반 상속을 사용하여 클래스를 정의 - ES6: class 키워드를 도입하여 클래스 기반 상속을 지원 모듈 - ES5: 모듈 시스템을 기본적으로 지원하지 않는다. 주로 전역 객체를 통해 모듈을 정의 - ES6:..
2023.06.18