웹 공부 애로사항 모음
웹 공부를 하면서 헤맸던 부분들 정리
1. MongoDB 에서 find API 는 해당 데이터가 존재하지 않으면 빈 배열을 반환한다. - 즉, 해당 데이터가 있는지 판단하려면 if(data) 가 아닌 if(data.length > 0) 으로 해야 한다.
해당 데이터의 존재 여부만 판단하려면 그냥 findOne을 쓰자.
2. MongoDB에서 insert, save, create 차이? - 더 공부해봐야 할듯
3. res.locals.[변수 명] 은 현재 요청-응답 사이클 사이에 공유 가능한 변수를 만들어 준다. - 프론트에서 해당 변수 명을 사용할 수 있다! 하지만 다른 컨트롤러에서 변경이 불가하므로 session 변수를 사용해서 변경된 변수 값을 유지할 수 있다.
4. 프로필 사진을 업로드하는 기능을 구현할 때 업로드될 사진을 미리보기해주는 기능을 추가하려 했는데 업로드는 잘 되지만 script 부분이 실행이 되지 않는 문제가 발생했다.
(심지어 오류메세지도 뜨지 않고 무반응)
해당 웹 페이지에서 F12를 눌러 디버깅에 성공했다.
원인은 $ 문자가 JQuery에서 사용되는 선택자인데, JQuery를 애초에 로드해주질 않아서 script 구문 자체가 오류가 난 거였다.
헤더 부분에 JQuery를 로드해주니 해결됐다.
5. nodejs에서 파일 업로드를 도와주는 미들웨어인 Multer를 사용할 때 Upload 콜백 함수의 뒤 콜백 함수에선 req.body 가 비어있게 된다.
Upload 뒷 단에선 req.body를 사용하지 않는 방식으로 코드를 짜야할 것 같다.
(req.body를 살리는 방법을 못 찾음)
6. 자바 스크립트 화살표 함수 특징
- new, super, this, arguments, target 등을 사용할 수 없음
- 항상 익명 함수
- 생성자로 사용할 수 없음
1. MongoDB 에서 find API 는 해당 데이터가 존재하지 않으면 빈 배열을 반환한다. - 즉, 해당 데이터가 있는지 판단하려면 if(data) 가 아닌 if(data.length > 0) 으로 해야 한다.
해당 데이터의 존재 여부만 판단하려면 그냥 findOne을 쓰자.
2. MongoDB에서 insert, save, create 차이? - 더 공부해봐야 할듯
3. res.locals.[변수 명] 은 현재 요청-응답 사이클 사이에 공유 가능한 변수를 만들어 준다. - 프론트에서 해당 변수 명을 사용할 수 있다! 하지만 다른 컨트롤러에서 변경이 불가하므로 session 변수를 사용해서 변경된 변수 값을 유지할 수 있다.
4. 프로필 사진을 업로드하는 기능을 구현할 때 업로드될 사진을 미리보기해주는 기능을 추가하려 했는데 업로드는 잘 되지만 script 부분이 실행이 되지 않는 문제가 발생했다.
(심지어 오류메세지도 뜨지 않고 무반응)
해당 웹 페이지에서 F12를 눌러 디버깅에 성공했다.
원인은 $ 문자가 JQuery에서 사용되는 선택자인데, JQuery를 애초에 로드해주질 않아서 script 구문 자체가 오류가 난 거였다.
헤더 부분에 JQuery를 로드해주니 해결됐다.
5. nodejs에서 파일 업로드를 도와주는 미들웨어인 Multer를 사용할 때 Upload 콜백 함수의 뒤 콜백 함수에선 req.body 가 비어있게 된다.
Upload 뒷 단에선 req.body를 사용하지 않는 방식으로 코드를 짜야할 것 같다.
(req.body를 살리는 방법을 못 찾음)
6. 자바 스크립트 화살표 함수 특징
- new, super, this, arguments, target 등을 사용할 수 없음
- 항상 익명 함수
- 생성자로 사용할 수 없음
7. 비동기 처리 시엔 jquery 대신 fetch api 를 이용하자.
- fetch(경로, 각종 옵션(method, headers, body 등)) 으로 사용 가능
8. 콜백 함수를 반복문 내에서 사용할 때, 콜백 함수 내에서 반복문의 index를 사용하게 되면 예상과 다른 결과가 나올 수 있다.
(콜백함수는 반복문이 모두 끝난 뒤 실행되기 때문에)
따라서 새로운 함수를 만들어 매 반복문마다 인자를 call by value로 넘겨주자.
댓글
댓글 쓰기