안녕하세요

MongoDB - 서버를 만들어 GET POST 해보자 본문

스터디/코딩애플

MongoDB - 서버를 만들어 GET POST 해보자

sakuraop 2022. 12. 30. 02:03

express 라이브러리 설치하기

$ npm init 

package.json을 생성.

entry point를 server.js 로 설정해준다.


$ npm i express

express 설치하기

 


nodemon 설치하기 (저장할 때마다 자동으로 서버를 재실행 해서 편리해짐)

$ npm i -g nodemon

-g는 모든 폴더에서 실행하기라는 뜻


💥에러💥발생
nodemon : 이 시스템에서 스크립트를 실행할 수 없으므로 ... 어쩌고저쩌고

POWERSHELL창을 열고 executionpolicy를 쳐보면 권한이 제한되어 있음을 확인할 수 있다.


PS C:\Windows\system32> executionpolicy
Restricted


이 권한을 제한하지 않도록 하면 다른 js 스크립트를 실행할 수 있게 된다.


PS C:\Windows\system32> set-executionpolicy unrestricted

 


server.js 파일 만들기

const express = require("express"); 

=> 라이브러리를 쓸게요.

 

const app = express(); 

=> express 객체 생성할게요.

const PORT = 8080;

=> 8080 포트 이용할게요.

app.listen(PORT, () => {
    console.log(`${PORT} 서버에 연결되었습니다.`);
});

=> 8080 포트에 서버를 연결하고, callback 실행할게요.

const express = require("express"); 
const app = express(); 
const PORT = 8080;

app.listen(PORT, () => {
  console.log(`${PORT} 포트 서버 실행됨.`);
});

GET

응답.send()

app.get("/테스트", (요청, 응답) => {
    응답.send("테스트 페이지입니다.");
});
=> '/테스트' 주소로 접속하면 callback 실행할게요.
callback => 화면에 "테스트 페이지입니다."를 써 넣어 주세요.


응답.sendFile(): 파일 보내기

app.get("/", (요청, 응답) => {
    응답.sendFile(__dirname + "/index.html");
});
=> "/" 주소로 접속하면 "/index.html" 파일을 화면에 띄워주세요

app.get("/테스트", (요청, 응답) => {
  응답.send("/테스트 페이지입니다.");
});

app.get("/", (요청, 응답) => {
  응답.sendFile(__dirname + "/index.html");
});

POST

Form에 작성한 내용 서버로 보내기 (Keyword: action, methodname)

      <form action="/add" method="POST">
          <input type="text" class="form-control" name="title" />
      </form>
=>  "/add" 주소로 POST 해주세요. 
이제 input태그의 name에 저장한 title로 값을 가져올 수 있다.

      <form action="/add" method="POST">
          <input type="text" class="form-control" name="title" />
      </form>

 

Form에서 전달 받은 값 이용하기

우선 값을 가져오려면 상단에 app.use(express.urlencoded({extended: true})) 추가 해야됨


app.post("/경로", (요청, 응답) => {
  응답.send("/add로 POST 전송 성공했다");
  console.log(요청.body.title);
});
=> html에서 "/경로"로 POST요청을 하면, callback 함수를 실행해주세요.
이용자가 입력한 값은 (요청)에 object type으로 저장된다.

요청.body // { title:"제목입니다." }

const express = require("express"); // 라이브러리를 쓸게요.
const app = express(); // express 객체 생성할게요.

app.use(express.urlencoded({ extended: true }));

app.post("/경로", (요청, 응답) => {
  응답.send("/add로 POST 전송 성공했다");
  console.log(요청.body.title);
});