Wecode - Foundation 1 (부트캠프)/Express (코드 Framework)

[Node.js] Express, j.son 문법

JBS 12 2023. 9. 1. 07:50
  1. Server 생성

const http = require(http)

  • http라는 변수
  • 다른 파일 곳곳에 있는 걸 가져올 거에ㅐ = require (밖에 있는 거 갖다 쓸 때)

 

app.get( → 하나의 기능 ex.마이페이지, 이름수정 등) 

  • 만약 기능이 6개면 app.get이 6개 



작성하는 함수의 이름은 아래에 기준해서 만들어줌 (백엔드는 CRUD만 함) 

Create 

Read

Update 

Delete 

 

(함수 이름은 동사로 써야 함)

 


[기본 원리]

데이터를 return하는 함수가 있고, 프론트엔드가 화면에 보이고 

이걸 계속 호출하기 어려우니, "/users"라는 걸 이용 

url로 접근하면 백엔드에 있는 함수 호출
  • app.get (인자1, 인자2): 함수  (첫번째 인자 '/users', 두번째 인자 끝까지) 
2번째 인자의 함수

=> 화살표 함수 

함수 안에 인자로 또 함수 있는 것 (call back 콜백 함수) 

 

 

 

두번째 인자의 콜백함수를 따로 밖으로 빼서 

변수로 전환 (const getUsers)

 

ur은 이렇게 빠져있는 경우가 많다. 

콜백함수가 너무 기니까. 

 

 

콜백함수는 실행시키면 안 됨 ( 괄호 붙이는 거 안함) 

알아서 실행시킬 것. 함수 이름만 붙여놓는다


이  함수 안에서 하는 모든 것들은 req,res (request, respond에 관한 것) 

req 에 대한 응답을 보여주기 위해 

res에 대한 응답을 보내주기 위해 


 

status (200)

 200으로 함수가 호출될 때 정상적으로 보낸다는 뜻 

정상적으로 보낸다는거와 함께, 데이터와 함께 200을 보냄 

 

return res.status(200) 

 

status (201) 

만들고 나서는 201로 바꿔줌 

 

return res.status(201) 

 

데이터를 담아 보내는 함수 j.son

j.son 안에는 자바스크립트 객체가 들어감

 

json ( { 프론트에게 보내 메세지} ) 

  • 안에 들어가는 값을 호출하는 건 함수
  • 안에 들어가는 값 함수를 return하는게 j.son 

 


j.son을 붙여주는 이유 

백엔드가 자바스크립트, 파이썬 등 많은 언어를 쓰니까 모든  데이터를 j.son 타입으로 통신하자 

 

편하게 '통신을 j.son에서만 왔다갔다 하자'

 

  • app.use(express.json()) : '내가 만드는 모든 app은 express framework 안에 만들어놓은 j.son으로 하겠다' 

 

 

 

response를 보내고 나면 백엔드 역할은 끝 

예외적으로, 요청  res응답을 보내고 나서, log (누가 몇시에 했다)을 남겨야 할 때, res  보내고 나서도 함수를 끝내면 안되는 경우도 있음


try { } : 자바스크립트 문법

try 안의 { } : 실제로 실행하고 싶은 코드 

 

catch(err) 
catch(error) 에러 잡는 함수 

언제나 정상동작하지 않을 수도 (그대로 에러가 프론트에게 return 돼서, 고객이 볼수도 있고/ 프론트에서 뻥 나서 백엔드가 해결 못할 숟도) 

에러 났을 떄 어떻게 할지를 catch 뒤에 쓰는 것 

if error, console.log 

if error, alert (로그인 시 비밀번호 틀렸다 라는 경고창을 띄운다) --> 프론트는 경고창 띄움. unless, 프론트는 비번 틀렸는데도 로그인 시킴. 

 

 

error 보는 방법 

에러가 나면, 프론트는 바로 할 수 있는게 없음. 

just wait

그러면 고객이 보는 화면은 흰 빈 창 

 

'at' 있는 부분 찾는다

--> app2.js 파일의 34번 줄에 오류가 있다.