[Node.js] 리팩터링

Featured image for [Node.js] 리팩터링

Node.js – MySQL – 생활코딩 생활코딩 Node.js – MySQL 강의를 듣고서 작성한 글입니다. 그냥 그렇다고요. 1. 현재 상황 대충 이렇다. 겁나 복잡하다. 학습과 구현을 병행했기 때문에 아주 이상한 프로그램이 되었다. 보다 유지보수가 쉽도록 리팩토링을 수행한다. 2. 개선 방안 리팩터링의 핵심 포인트를 짚어보자. 가. DB 사용 template.js에 위치한 메서드들이 readAndRes를 거치지 않고 바로 DB에 접근할 수 … 더 읽기

[Node.js] 작성자 표시

Featured image for [Node.js] 작성자 표시

Node.js – MySQL – 생활코딩 생활코딩 Node.js – MySQL 강의를 듣고서 작성한 글입니다. 그냥 그렇다고요. 1. JOIN문을 이용한 상세 보기 구현 topic과 author 테이블을 조인해서 글마다 작성자가 누구인지 표시할 수 있도록 한다. HTML 코드를 수정해서 작성자를 표시하는 p 태그를 추가한다. 추가로 author라는 인자를 받아서 ${author}라는 템플릿 리터럴을 추가한다. 관련된 모든 코드를 변경해야 한다. 이런 식으로 … 더 읽기

[Node.js] MySQL로 기능 구현 (Update, Delete)

Featured image for [Node.js] MySQL로 기능 구현 (Update, Delete)

Node.js – MySQL – 생활코딩 생활코딩 Node.js – MySQL 강의를 듣고서 작성한 글입니다. 그냥 그렇다고요. 1. Update 가. else if (pathname === “/update”) 나. else if (pathname === “/update_process”) 제출을 누르면 수정이 완료된다. 2. Delete 이제 하나 남았다. before after

[Node.js] MySQL로 기능 구현 (Create, Read)

Featured image for [Node.js] MySQL로 기능 구현 (Create, Read)

Node.js – MySQL – 생활코딩 생활코딩 Node.js – MySQL 강의를 듣고서 작성한 글입니다. 그냥 그렇다고요. 1. 상세 보기 구현 MySQL에서 DB의 정보를 가져와서 상세 보기 페이지를 만들고 클라이언트에게 전송하기. 2. Create 구현 가. INSERT 기존의 코드에서 writeFile(…)을 INSERT 쿼리로 수정한다. 보안을 위해서 작성했던 코드다. 여전히 XSS에 대처하기 위해서 sanitized-html은 필요하다. 하지만 더 이상 파일시스템을 사용하지 … 더 읽기

[Node.js] npm install mysql2

Featured image for [Node.js] npm install mysql2

Node.js – MySQL – 생활코딩 생활코딩 Node.js – MySQL 강의를 듣고서 작성한 글입니다. 그냥 그렇다고요. 1. MySQL 연결하기 2. Error: connect ECONNREFUSED 127.0.0.1:3306 main.js가 있는 컨테이너에서 mysql이 있는 컨테이너를 찾지 못하고 있다. 서로 다른 컨테이너에 있기에 localhost로는 접근할 수 없다. 가. IP로 접근하기 https://bluese05.tistory.com/36 container가 할당받은 internal ip로 접근하고자 하는 컨테이너를 선택할 수 있다. docker … 더 읽기

[Node.js] MySQL 제어하기

Node.js – MySQL – 생활코딩 생활코딩 Node.js – MySQL 강의를 듣고서 작성한 글입니다. 그냥 그렇다고요. 1. file의 한계 소규모의 단순한 기능을 구현하기에는 파일이 좋다. 단순하고 쉽고 특별한 설치나 학습이 필요하지 않다. 하지만 파일은 한계가 있다. 우리가 만든 웹 페이지가 저장한 파일의 수가 커질수록 원하는 파일, 원하는 내용을 찾는 것이 오래 걸린다. 뿐만 아니라 파일은 제목과 … 더 읽기

[Nodejs] TypeError: Cannot convert undefined or null to object

Featured image for [Nodejs] TypeError: Cannot convert undefined or null to object

1. 현상 와 Docker를 배워서 이미지를 만들어서 github container registry에 업로드했다. 신이 나버린 나는 당연히 다른 PC를 켜서 도커를 설치하고 git clone, docker-compose up을 했다. 하지만 나의 기대와는 다르게 도커는 “운영체제가 달라 저리 치워”라고 말했다. 나는 도커의 비위를 맞춰 bulidx를 이용해서 멀티 플랫폼으로 빌드했고 다시 Compose up을 했다. 그랬는데… 이 놈이 이번에는 JS 문법 오류가 … 더 읽기

[Jest] Setup and Teardown

Featured image for [Jest] Setup and Teardown

0. 참고자료 Setup and Teardown · Jest Often while writing tests you have some setup work that needs to happen before tests run, and you have some finishing work that needs to happen after tests run. Jest provides helper functions to handle this. 1. 설정 및 해제 테스트를 작성하는 동안에는 테스트가 실행되기 전에 수행해야 하는 … 더 읽기

[Jest] Testing Asynchronous Code

0. 참고자료 Testing Asynchronous Code · Jest It’s common in JavaScript for code to run asynchronously. When you have code that runs asynchronously, Jest needs to know when the code it is testing has completed, before it can move on to another test. Jest has several ways to handle this. 1. 비동기 코드 테스트 javascript를 … 더 읽기

[Jest] Matcher

1. Matcher? Using Matchers · Jest Jest uses “matchers” to let you test values in different ways. This document will introduce some commonly used matchers. For the full list, see the expect API doc. matcher란 입력을 해석하고 기댓값과 일치하는지 (혹은 일치하지 않는지) 판별할 때 주로 사용된다. 여기서 .toBe가 matcher에 해당한다. 2. toBe & toEqual 지금을 … 더 읽기