LeeWang_31
이왕31
LeeWang_31
전체 방문자
오늘
어제
  • 분류 전체보기 (234)
    • 프로젝트 (2)
      • 사이드 프로젝트 (2)
      • Codestates_pre_project (0)
    • 프론트엔드 (169)
      • Html (19)
      • CSS (18)
      • JavaScript (29)
      • Codestates (76)
      • 코딩노트 (27)
    • 백엔드 (10)
      • node (10)
    • 구르는 돌 🌑 (16)
      • Codestates (11)
      • 생각 (4)
      • 공부 흔적 (1)
    • 정보 (18)
      • 오류노트 (2)
      • 인텔리제이 정보 (9)
      • 깃 정보 (3)
      • 기타 정보 (4)
      • 안드로이드스튜디오 정보 (0)
    • CS (7)
      • 이론공부 (7)
    • App (6)
      • Android (3)
      • Kotlin (3)
    • 컴퓨터 수학 (5)
      • 암호론 (5)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 사이드프로젝트
  • css
  • 1292
  • DP
  • 2609
  • 사용자 친화 웹
  • 번들링
  • UI/UX
  • 알고리즘
  • 생활코딩
  • 코딩애플
  • 안드로이드스튜디오파이어베이스
  • 사용자친화웹
  • figjam
  • 안드로이드스튜디오범블비
  • linux
  • 파이어베이스연동
  • 웹팩
  • linuix 코드스테이츠
  • codestate
  • 코드스테이츠
  • 2693
  • 코플릿
  • TODOlist
  • 자바스크립트
  • 백준
  • React
  • html
  • ubuntu
  • JavaScript

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
LeeWang_31

이왕31

[Node.js/MongoDB] Post 데이터 넘기기
백엔드/node

[Node.js/MongoDB] Post 데이터 넘기기

2022. 12. 14. 17:57

코딩애플님의 Node.js, MongoDB로 2시간 만에 빠르게 웹서비스 만들기 강의를 듣고 복습의 목적으로 작성하였습니다

Post

//index.js
const express = require('express')
const app = express()
const port = 3001

app.get('/',(req,res)=>{
    res.sendFile(__dirname+'/index.html');
})
app.get('/write',(req,res)=>{
    res.sendFile(__dirname+'/write.html');
})
app.listen(port, () => {
    console.log(`Example app listening on port ${port}`)
})
<!-- index.html -->
<!doctype html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css" integrity="sha384-xOolHFLEh07PJGoPkLv1IbcEPTNtaed2xpHsD9ESMhqIYd0nLMwNLD69Npy4HI+N" crossorigin="anonymous">

    <title>Home</title>
</head>
<body>
<nav class="nav nav-pills flex-column flex-sm-row">
    <a class="flex-sm-fill text-sm-center nav-link active" href="#">Home</a>
    <a class="flex-sm-fill text-sm-center nav-link" href="#">TODO</a>
    <a class="flex-sm-fill text-sm-center nav-link" href="#">Write</a>
    <a class="flex-sm-fill text-sm-center nav-link" href="#">etc</a>
</nav>
<h4>Home</h4>
<script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-Fy6S3B9q64WdZWQUiU+q4/2Lc9npb8tCaSX9FK7E8HnRr0Jz8D6OP9dO5Vg3Q9ct" crossorigin="anonymous"></script>
</body>
</html>
<!-- write.html -->
<!doctype html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css" integrity="sha384-xOolHFLEh07PJGoPkLv1IbcEPTNtaed2xpHsD9ESMhqIYd0nLMwNLD69Npy4HI+N" crossorigin="anonymous">

  <title>Hello, world!</title>
</head>
<body>
<nav class="nav nav-pills flex-column flex-sm-row">
  <a class="flex-sm-fill text-sm-center nav-link" href="#">Home</a>
  <a class="flex-sm-fill text-sm-center nav-link" href="#">TODO</a>
  <a class="flex-sm-fill text-sm-center nav-link active" href="#">Write</a>
  <a class="flex-sm-fill text-sm-center nav-link" href="#">etc</a>
</nav>
<h4>Write</h4>
<div class="container mt-3">
  <form>
    <div class="form-group">
      <label>오늘의 할일</label>
      <input type="text" class="form-control" name="title">
    </div>
    <div class="form-group">
      <label>날짜</label>
      <input type="text" class="form-control" name="date">
    </div>
    <button type="submit" class="btn btn-primary">Submit</button>
  </form>
</div>
<script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-Fy6S3B9q64WdZWQUiU+q4/2Lc9npb8tCaSX9FK7E8HnRr0Jz8D6OP9dO5Vg3Q9ct" crossorigin="anonymous"></script>
</body>
</html>

다음코드를 사용했습니다

 

bootstrap사용했습니다 사용 방법은 아래 링크를 확인해 주세요 

https://leewang31.tistory.com/239

 

write.html의 from에 다음코드를 적어 줍니다.

<form action="/add" method="post">

action으로 경로를 정하고, method로 crud(get, post, put, delete...)를 정합니다 

form태그 안에 출력을할 submit기능의 button이 필요합니다.

<button type="submit">Submit</button>

 

index.js로 돌아갑니다.

post로 보내준 데이터를 확인하기 위해 body-parser를 다운 받아야 합니다.

npm i body-parser

 

설치가 끝나고 서버js에 다음 코드를 작성해줍니다.

const bodyParser= require('body-parser')
app.use(bodyParser.urlencoded({extended: true}))

post를 받는 경로는 /add이기 떄문에 아래 코드로 데이터가 잘 넘어 오는지 확인 합니다

app.post('/add', function(req, res){
    console.log(req.body);
    res.send('전송완료')
});

req,body라는게 보입니다.

req는 요청입니다. 

post로 요청한 데이터가 req에 저장되어 있습니다.

req중 body에 해당 데이터가 저장됩니다. 여기서 말하는 데이터는 hrml에서 input태그 안에 있는 내용을 말합니다.

 

해당 데이터는 input의 name을 키가 된 모습으로 객체의 형태를 갖게 됩니다.

<input type="text" class="form-control" name="date">

 

http://localhost:3001/write에서 각각의 input에 내용을 적겠습니다.

저작자표시 (새창열림)

'백엔드 > node' 카테고리의 다른 글

[Node.js/MongoDB] MongoDB에 데이터 저장하기  (0) 2022.12.15
[Node.js/MongoDB] MongoDB 세팅 (무료호스팅)  (0) 2022.12.15
[Node.js/MongoDB] Html파일 전송하기  (0) 2022.12.14
[Node.js/MongoDB] nodemon  (0) 2022.12.14
[Node.js/MongoDB] Express와 get으로 읽기  (0) 2022.12.14
    '백엔드/node' 카테고리의 다른 글
    • [Node.js/MongoDB] MongoDB에 데이터 저장하기
    • [Node.js/MongoDB] MongoDB 세팅 (무료호스팅)
    • [Node.js/MongoDB] Html파일 전송하기
    • [Node.js/MongoDB] nodemon
    LeeWang_31
    LeeWang_31
    이왕 할 거면 기분 좋게

    티스토리툴바