728x90
반응형

- 기능이 어떻게 동작하는지 한글로 상세히 정리부터 하고
- 그걸 코드로 번역하기  
이렇게 하면 처음보는 기능도 알아서 잘 만들 수 있습니다. 
숙련된 프로그래머들도 다들 이렇게 합니다.

<form class="form-box" action="/posting" method="POST">
  <h4>인풋박스제목</h4>
  <input name="title">
  <input name="text">
  <button type="submit">전송</button>
</form>

해석

<form class="form-box" action="/posting" method="POST">
   <h4>인풋박스제목</h4>
   <input name="title">
   <input name="text">
   <button type="submit">전송</button>
</form>

<form> : 폼태그는 html에서 인풋박스 만들때 쓰는거임

form(폼)안에다 인풋박스 만들어야 서버에 전송하기 편함

action="/ULR~~" : URL내용은 서버파일 에서 사용할 URL

name="이름" : input박스에는 DB에 어떤이름 으로 저장할지 name을 지정해줘야함

 method="POST" : 서버에 post 요청 할꺼란 뜻임

//유저가 데이터를 보내면 그걸 꺼내쓰는 코드가 원래 귀찮은데
//그걸 쉽게 요청.body에 넣는걸 도와주는 코드
//위쯤에 넣어두고 시작한다 생각하면 편함
app.use(express.json)
app.use(express.urlencoded({extended:true}))

 

 

이제 서버파일에서

//유저가 작성한 글을 db에 저장해주기
app.post('/URL작명', async (요청, 응답) => {
   await db.collection('js').insertOne({ DB에넣을 이름 : 요청.body.인풋박스name })
   응답.redirect('/')
});

해석

app.post('/URL작명', async (요청, 응답) => {
   await db.collection('js').insertOne({ DB에넣을 이름 : 요청.body.인풋박스name })

   응답.redirect('/')
});

app.post() : 포스트요청 메소드임

'/URL작명' : 요청할 url작명해서 적는곳 대충 '/posting' 이런거

db.collection('컬렉션명') : 대충 주소임 DB의 컬렉션('컬렉션이름') 라는뜻

insertOne : 삽입한다는뜻

DB에넣을 이름 : 몽고DB는 데이터를{ 이름 : 내용 } 이렇게 저장함 그중 제목 부분

요청.body. : 인풋박스에 입력한 내용

요청.body.인풋박스에서 설정한name

응답.redirect('/') : 이건 인풋을누르면 홈화면으로 이동한다는 뜻

서버 기능이 끝나면 항상 응답을 해줘야 무한대기에 안빠짐

728x90
반응형

+ Recent posts