본문 바로가기

공부/타입스크립트로 함께하는 웹 풀 사이클 개발(React, Node.js)

백엔드 심화: 인증과 비동기처리(4)-모듈, es6로 변경-이슈해결

SQL 연결하는 부분을 모듈로 만들어주기!

module.exports = connection;

🔸모듈로 만들어 줘야 다른 파일에서도 일일이 연결 코드를 작성하지 않고 import로 불러와 사용할 수 있다.

💢es6 모듈인 import와 commonjs의 require은 같이 사용할 수 없다.
export default connection;

으로 사용해서 모듈을 export 해주어야 한다❗❗❗

💢하지만 오류가 났다.

error 내용 구글링도 하고, 여러가지 따라해보고

다시 CommonJS module로 변경도 하고

1시간을 삽질했는데 결과적으로는 es6 빠른 수정을 하며

import from 경로에서 require에 있지않은 .js 가 빠져 오류가 났던 것이었다.

 

💢그리고 vscode에서는 문제 없었지만, POSTMAN으로 통신하며 또 오류가 났다.

connection.promise();

promise()를 추가해줘야 오류가 나지 않는다.

 

✨회원 API에 DB 연결해서 회원가입, 로그인, 조회, 탈퇴 시키기

⬇️구현코드

✨회원가입

⬇️추가확인

 

⬇️중복확인

✨회원로그인

둘 중 하나가 틀려도 아이디나 비밀번호를 다시 확인해달라는 message를 띄운다.

✨회원조회

✨회원탈퇴

select로 email과 password가 동일한지 확인 후 동일하면 삭제한다.

 

⬇️삭제확인

 

❄️js파일에서 SQL문

나는 템플릿 문자열을 통해 문제없이 통신을 했지만 강의에서는 오류가 났다.

그래서 다른 방법을 사용함에 적어두려고 한다.

?를 사용하고, 옆에 들어갈 value값의 변수명을 적어주면 된다.

conn.query('SELECT * FROM users WHERE=?',email);
conn.query('INSERT INTO users (email, name, password, contact) values(?, ?, ?, ?)', //
[email, name, password, contact]);

 

✨채널 API에 DB 연결해서 회원가입, 로그인, 조회, 탈퇴 시키기

⬇️구현코드

✨채널생성

users에 id가 있고, channelTitle이 channels테이블의 name과 중복되지 않을때,

채널을 생성해주는 로직으로 구현했다.

✨전체채널조회

user_id가 가지고 있는 채널 모두를 보여준다.

✨채널개별수정

channelTitle의 name을 중복체크하고 id와 name이 같을 때 newTitle로 변경해준다.

✨채널개별삭제

✨채널개별조회