안녕하세요
MongoDB - 서버를 만들어 GET POST 해보자 본문
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, method, name)
<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);
});
'스터디 > 코딩애플' 카테고리의 다른 글
리액트 - 모달 창 바깥 클릭하면 창 닫기 (0) | 2022.12.31 |
---|---|
MongoDB - Atlas 무료 데이터베이스 연결하기 (0) | 2022.12.31 |
MongoDB - Node.js, 요청방식, API, REST API (0) | 2022.12.30 |
리액트 - express 서버와 연결하기 (0) | 2022.12.26 |
리액트 - useTransition() 후순위처리, UX향상 (0) | 2022.12.26 |