일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 드림코딩
- nodejs
- 활동 킬로칼로리
- JavaScript
- MySQL
- 메디패치
- node.js
- 위코드
- SQL
- 러닝
- dql
- 월별 운동일지
- Udemy
- 박스점프
- dml
- 운동일지
- express
- git
- Til
- 걷기
- github
- 달리기
- node
- 습윤밴드
- code kata
- 크로스핏
- 홈트
- wecode
- axios
- 독서 리뷰
- Today
- Total
목록위코드 (46)
RISK IT
오늘은 크게 2가지를 했다. 프론트엔드와의 첫 통신 그리고 유저 회원가입에서 오류 디버깅이다. 프론트엔드와의 첫 통신 프론트엔드와 통신할 때, req.body에 프론트엔드 측에서 보내는 변수를 받아와야 했다. 나는 처음에 데이터베이스 스키마를 구현할 때, name, email, password, profileImage를 받아와야 했다. profileImage는 null 값이 들어가도 돼서 필수 요소는 아니었다. 그런데 name은 필수로 받아와야 하는 정보였기 때문에, 프론트에서 name을 보낼 수 있도록 logic을 추가하거나 백엔드에서 임시적으로 상수로 적용해야 했다. 우리는 name을 보내지 않는 것으로 결정했고 나는 임시적으로 상수 처리를 하려고 했는데 쉽게 되지가 않았다. 생각보다 간단했다. ⬇️..
const {} 와 const의 차이 모듈 불러올 때 const foo = bar 와 const { foo } = bar 의 차이 경로의 입력이 다르다! ⬇️ 1. const { foo } = bar const { validateToken } = require('../middlewares/auth'); router.post('/', validateToken, postController.createPost); ⬇️ postRouter.js파일 const express = require('express'); const router = express.Router(); const postController = require('../controllers/postController'); const { validat..
1. 레이어의 종류 (일반적으로) Presentation Layer 해당 시스템을 사용하는 사용자 혹은 클라이언트 시스템과 직접적으로 연결되는 부분 백엔드 API에서 엔드포인트 부분 API의 엔드포인트들을 정의하고 전송된 HTTP 요청(request)들을 읽어들이는 로직까지만 담당 Business Layer 실제 시스템이 구현해야 하는 로직들을 이 레이어에서 구현 (예시) 홈페이지 회원가입 엔드포인트에서 만일 비밀번호가 8자가 넘는지 확인하여 8자 미만이면 회원가입을 거부하는 로직 등 Persistence Layer 데이터베이스와 관련된 로직을 구현하는 부분 Business Layer에서 필요한 데이터 생성, 수정, 읽기 등을 처리하여 실제로 데이터베이스에서 데이터를 저장, 수정, 읽어 들이기를 하는 역..
추가된 부분 const bcrypt = require('bcrypt'); const jwt = require('jsonwebtoken'); bcrypt, jsonwebtoken 모듈 추가 app.post('/users/signup', async (req, res) => { const { name, email, password, profileImage } = req.body; const saltRounds = 12; const hashedPassword = await bcrypt.hash(password, saltRounds); await mysqlDataSource.query( `INSERT INTO users ( name, email, password, profile_image ) VALUES ( ?,..
1. 작업 내용 TIL15에 올렸던 feature/CRUD를 추가한 후 멘토님들의 리뷰를 받아 지속적으로 수정해왔다. RESTful한 엔드포인트로의 수정 가독성 향상을 위해 SQL query문 수정 async, await을 활용한 비동기 처리(기존 callback과의 혼합된 방식에서 변경) likes table UNIQUE 제약조건 추가 '?'를 활용한 데이터 매핑 2. 소스코드 ⌨️ 기존 소스코드 require('dotenv').config(); const express = require('express'); const cors = require('cors'); const morgan = require('morgan'); const..