-Westagram Backend Project -
여기에서 body가 없는거고, 배열 안에 있는 건 더미 데이터
vscode 할 때, command+ s (ctrl+s) 로 저장 후 node.[파일이름]으로 실행
(저장 안 됐다면, tab에 흰 점 생김)
[구조화 흐름- 접근]
위에서 배열에 추가한 것과 다르게,
여기서는 mysql 에 있는 database 연결 후,
여기에서 insert int로 유저 생성
이번 과제에서는 회원가입, 유저생성하기!
이번에는
get, post, 콜백함수를 써주는 것!
일단, 프론트는 postman body에 써서 백엔드한테 request보내고
백엔드는 받은 request를 다 하고 다했다고 postman에 response보내고 .
get post는 아래 링크 참고
코드 뜯어보기
아래 링크에서, 전체적인 코드 틀은 뜯어보았다. (데이터베이스 연결하는 과정)
https://pm-developer-justdoit.tistory.com/32
주석을 보면 되는데
이번 회원가입/ 유저 생성에 해당되는 건, 과제2이다.
회원가입/ 유저 생성에는 총 5개의 단계가 있다.
보라색은 주석 부분이다.
app.get('/users', async(req, res) => { --> user 가져오는 get
--> '/users' 는 url --> 맨 밑의 server.listen 첫 인자 8000 -> localhost:8000/users 에 해당
--> / 는 root (localhost3000/ 뒤에 아무것도 없는 것= localhost3000)
--> localhost는 디폴트, 그다음 숫자는 아래의 server.listen에서 확인 --> localhost3000/
try {
query DB with SQL
Database Source 변수를 가져오고.
SELECT id, name, password FROM users;
const userData = await myDataSource.query
(`SELECT id, name, email FROM USERS`)
//console 출력
console.log("USER DATA :", userData) --> 서버 화면에 띄우는 거
(javascript는 화면에 띄우려면 console.log 띄어야하니)
. 있으면 다 js라고 생각하면 됨--> 파이썬도 .py
return res.status(200).json({
"users": userData
})
} catch (error) {
console.log(error)
}
})
//2. users 를 post로 생성, '/users' -> mysql의 users table에 생성
app.post("/users", async(req, res) => {
try {
// 1. user 정보를 frontend로부터 받는다. (프론트가 사용자 정보를 가지고, 요청을 보낸다) -> postman body에 받는다
const me = req.body
// 2. user 정보 console.log로 확인 한 번!
console.log("ME: ", me) --> me는 임의로 넣어놓은 변수 (r ,q 아무거나 가능)
// 3. DATABASE 정보 저장.
// postman body에서 빈 창에 데이터 자세하게 적고, vscode 여기로 와서 양식 쓰기
// postman에서 해당 부분은 body에 "name":"Ken" "password="ppdd" "email"="ken@email.com" 으로 보일 것
const name2 = me.name
const password2 = me.password
const email2 = me.email
const userData = await myDataSource.query(`
INSERT INTO users (
name,
password,
email
)
VALUES (
'${name2}',
'${password2}',
'${email2}'
)
`)
// 4. DB data 저장 여부 확인 -- console.log 찍어봐서
console.log('inserted user id', userData.insertId)
// 5. send response to FRONTEND -- 잘 됐다고 보내기 (postman에서 response 보내기)
return res.status(201).json({
"message": "userCreated"
})
} catch (err) {
console.log(err)
}
})
//서버 띄우는 get
참고 영상
- vscode에서 키보드 화살표하면 위로 올라갈 수 있음 (그전 코드로 갈 수 있음)
- api 만들기 링크도 만들 수 있음
app.get('/dog', (req, res) => {
res.send ("<a href= 'https://youtube.com'>")
})
이러면 localhost:3000/dog 에 youtube link 만들어져서 또 들어갈 수 있음
res.send 안에 html, text 다 가능. localhost:3000/dog 창에 넣어지는 것.
send 통해서 뭐든지 보낼 수 있다 !
res.send("Hello, world!") //응답res에 "Hello, world!"를 send 보내겠다!
'Wecode - Foundation 1 (부트캠프) > Westagram (Mysql, Node.js, Express)' 카테고리의 다른 글
Foundation1 과제 - localhost 서버 구동// vscode, 터미널 (0) | 2023.09.05 |
---|---|
[MySQL로 Database 만들기] 2. DQL 사용 (select, join) (0) | 2023.09.05 |
[Westagram Backend Project] 1. Express 초기 환경 설정/ TypeORM 설치 적용 (주황색) (0) | 2023.09.04 |
[Express] .gitignore 생성 (0) | 2023.09.04 |
[Express 초기 환경세팅] 2. database 서버 연결- dbConnection 설정 (0) | 2023.09.04 |