작성
·
151
0
1. bcrypt 공식문서에서 hash 만드는 로직을 가져오셨습니다. 이 때, 아래 코드에서 1. 이 부분이라고 되어있는 부분을 추가하신 이유가 무엇인 지궁금합니다.
강사님의 코드에는 에러가 발생했을 때, err에 대한 next메소드를 사용하여서 bcrypt.hash 메소드로 로직을 이동시키신 거 같습니다
공식문서대로라면, 해당 부분은 로직에서 빠져있는데, 이게 어떤 차이가 있는 건가요?
2. 제가 백엔드 강의 (14강까지) 를 전부 수강하였습니다. 수강을 하면서, 조금 어려웠던 부분이 callback에 관한 부분이었습니다.
index.js에서 라우터를 설정하신 후, 해당 라우트에 맞는 미들웨어라던지, function(err, isMatch) 등등 각기 다른 폴더의 js파일을 export및 require로 사용하고 계셨는데요, 콜백에 대한 매개변수 설정법과 '여기는 콜백함수를 써야겠다', 하는 그런 코딩의 방법(정확히 뭐라 표현해야 할지 모르겠네요) 같은게 있는건가요?
아래는 작성한코드입니다.
답변 2
1
안녕하세요 ~ devsn 님 글씨 색깔이 개성 넘치시네요 ㅎ 에디터 테마를 이걸로 쓰시는 건가요 ? ㅎㅎ
우선 첫번째에 대한 답은요
next() 라는 미들웨어를 생각해봐야하는데요 next 미들웨어를 쓰면 현재 진행중이던게 다 멈추고 그 함수에서 빠져나가집니다.
현재 위에 소스 부분은 유저 collection에 유저 정보를 저장하기 이전에 ("pre") 작동하는 부분이잔아요 !
그니깐 저부분이 1.먼저 작동을 하고 나서 2.몽고 DB에 저장이 되겠죠 ~
근데 1.먼저 저장을 할떄 bcrypt로 비밀번호를 암호화 해줘야하는데 그쪽에서 에러가났으니깐 그 이후에 작동은 다 멈춰줘야하잔아요 ! 그래서 먼저 1번에서 빠져나가야 겠죠 ? 그러기 위해서 next()를 써준겁니다.
두번째 질문은 음 우선 콜백 부분을 어떻게 써줘야 하는지에 대한것은 아무래도 해당 library를 쓸때 거기에서 정해놓은 방식이 있습니다 ^^
몽고 DB에 편하게 접근해서 사용하게 만들어주는 Mongoose에서 정해놓은 부분을 아마 많이 callback으로 썻던것 같습니다 ^^
그래서 사실 많이 써보면서 자연스럽게 익숙하게 되는것도 중요하고 사용하고자하는 기술 (여기 같은 경우에는 expressjs 나 mongodb) 의 설명서 (Documentation)을 많이 읽어 보는것도 많은 도움이 될것 같습니다 ~!
0
1. express 공식문서의 미들웨어 설명과 강사님의 설명을 같이 보면서 이해했습니다.
실제로 next를 지워봤네요 ㅋㅋ작동 안하는...ㅋㅋㅋ
덕분에 약간은 이해한 거 같습니다 (좀 더 연습해야겠지만요)
2. 콜백이....ㅜㅜㅜ 아직 안 익숙한거겠죠?...공식문서에도 보면은 콜백을 통해서 err, results나 err, res, field 등 다양하게 콜백 매개변수를 구성하고, 다른 폴더의 js에서 그 콜백에 들어갈 매개변수를 import해서 가져오는 거 같던데, 이게 정말 헷갈리더라구요.
저는 콜백을 구성할때 err, results를 작성했으면 그 아래에 바로 err이나 results에 대한 로직을 구성했는데, 강사님의 코드는 딱딱 나뉘어진 느낌이라 좋아보였습니다 ㅎㅎㅎ
좀 더 연습해보겠습니다!
3. 에디터는 제가 눈이 아파서...초록색인데, 인프런에 코드를 복붙하면 한글 글씨가 빨간색으로 나오네요 ㅋㅋㅋ