카테고리 없음

2024-05-16 개인과제 (API구현 3일차)

suwon 2024. 5. 16. 20:30

개발환경 

Javascript

Insomnia

패키지매니저 : yarn

데이터베이스 : MongDB

웹프레임워크 : Node Js(express, Mongoose)

 

목표

주요기능 CRUD를 구현하여 (Creat, Read, Update, Delete) API 구현

상품생성, 상품 목록 조회, 상품 수정, 삭제를 구현하여 API CRUD의 코드를 이해하고 활용

 

개발 중 문제점

1. 반복문 forEach 중 return 반환을 하지 않아 생각과 다른값이 출력

 

처음에는 순서대로 번호를 매기면서 goodsnumber가 1씩 증가했다, 그러나 api 값을 삭제하는 과정에서 4번을 삭제했다고 가정하면 1,2,3,5,6,7 이와같이 4번이 비어있지만 api를 생성하면 8번으로 번호가 매겨지는 현상이 있어서 이를 채우기위해 아래와 같이 코딩작업을 진행하였다. 그러나.

문제의 코드

 

goodsnumber의 변수가 1~4, 6~16으로 계속 있었지만 , goodsnumber 변수의 값이 1로 고정으로 들어가는 문제점을 발견하여 구글링을 통해 forEach에서는 return 반환이 되지않는다는 말이 있어서 for문으로 아래와 같이 코드변경

 

 

변경 후 코드

완성된 코드에서는 동작이 잘되는것을 확인 할 수 있었음.

 

 

2. 데이터를 주고받을 경우에 동기 ,비동기 처리를 안해서 늦게 처리하여 생각과 다른 출력이 생김.

문제의 코드

 

위와 같은 코드를 수행 했을때 번호는 5번이 없으면 goodsNumber에 5번으로 반환이 잘되었지만, API안에서 값을 확인해보면 내림차순으로 수행이 안되고 5번이 제일 앞쪽에 자리를 잡는 문제점을 확인했다. 

이것은 팀원들과 문제점 논의후에 api에서 값을 받을경우에 비동기처리를 해야 할꺼같다는 말이 나왔고, async- await으로 코드를 추가하여 문제점을 아래와 같이 해결 할 수 있었다.

 

변경 후 코드

 

과제 및 공부 해야할 내용 

 ㄴ >  ( 매일 시간이 남을때 하나씩 공부하면서 업데이트 할 예정 )

1. async - await의 이해 (동기 - 비동기 처리할때 쓰는것은 알고 있지만 , 활용방법을 정확히 이해하지못하고있어서 공부를 하는것이 필요함.)

2. promise의 이해 (1번내용와 비슷하게 많이 이용되는 동기 비동기 처리에 promise 및 씽크 어웨잇에 내용을 정확히 활용 할줄 알 필요가있다.)

3. json - object의 차이점 서술

4. 메서드의 활용