728x90
데이터 형식(model/User.js)
exports.users = `apple//1234//사과사과
banana//4321//바나나나
happy//qwer234//해피해피`;
컨트롤러 코드(controller/Cuser.js)
내 코드 | 코드 비교 |
exports.pactice2 = (req, res) => { const userDatas = User.users; exist_user_arr = []; exist_user_id = []; for (array of userDatas.split("\n")) { console.log(array.split("//")); exist_user_arr.push(array.split("//")); exist_user_id.push(array.split("//")[0]); } if (exist_user_id.includes(req.body.id)) { for (let i = 0; i < exist_user_arr.length; i++) { if ( req.body.id === exist_user_arr[i][0] && req.body.pw === exist_user_arr[i][1] ) { const name = exist_user_arr[i][2]; res.send({ isLogin: true, name: name }); break; } else if ( //아이디는 맞는데 비번이 틀릴 경우 req.body.id === exist_user_arr[i][0] && req.body.pw !== exist_user_arr[i][1] ) { res.send({ isLogin: false }); } else { continue; } } } else { res.send({ isLogin: false }); } }; |
exports.pactice2 = (req, res) => { const userDatas = User.users.split("\n"); const users = []; const userIds = []; for (let user of userDatas) { users.push({ realId: user.split("//")[0], realPw: user.split("//")[1], name: user.split("//")[2], }); userIds.push(user.split("//")[0]); // 아이디만 } const idx = userIds.indexOf(req.body.id); if (idx >= 0) { if (req.body.pw === users[idx].realPw) { res.send({ isLogin: true, name: users[idx].name }); } else { res.send({ isLogin: false }); } } else { console.log("아이디 없음"); res.send({ isLogin: false }); } }; |
for 문으로 너무 복잡하게 풀려고 한 것 같다. 1. 자바스크립트는 파이썬과 달리 array.includes(요소) 로 배열에 요소가 포함되었는지 확인 가능하다. 2. 전체 값을 object 로 push 하고, users.push({ realId: user.split("//")[0], realPw: user.split("//")[1], name: user.split("//")[2], }); 인덱스 찾을 수 있도록 id만 넣는 배열 만들어서 push 한 후 userIds.push(user.split("//")[0]); // 아이디만 indexOf()값이 0보다 큰지로 먼저 아이디가 정보에 포함되었는지 확인 해서 const idx = userIds.indexOf(req.body.id); if (idx >= 0) { 정보에 아예 없는 경우를 else 처리한 다음 비밀번호가 같은지 index로 확인하고, 아닐 경우를 else처리하는게 더 깔끔한 듯하다. |
728x90
'백앤드 > Node.js' 카테고리의 다른 글
[포스코x코딩온] 웹개발자 입문 과정 6주차 | MySQL 서버 설치, pm2 (0) | 2023.04.10 |
---|---|
[포스코x코딩온] 웹개발자 입문 과정 6주차 | MVC MySQL 연동 (0) | 2023.04.08 |
[포스코x코딩온] 웹개발자 입문 과정 6주차 | MVC (0) | 2023.04.05 |
[포스코x코딩온] 웹개발자 입문 과정 5주차 | 파일 업로드 (0) | 2023.04.03 |
[포스코x코딩온] 웹개발자 입문 과정 5주차 | 비동기 HTTP 통신 종류 (ajax, axios, fetch) (0) | 2023.04.01 |