라우팅
- 경로를 찾아가게 하는 과정, 즉 위에서 만든 서버 만들고 url과 메소드에 따라 함수 실행시키고 찾아가게 하는 자바스크립트 파일이 라우팅 파일이 되는 것이다.
- node 프로젝트를 설정하면 크게 라우팅해서 연결해주는 라우팅 파일과 그 라우팅으로 실행 시킬 함수 파일로 구성된다.
nodemon - 모듈
- node의 모듈중 하나로서 서버 실행중, 파일에 수정사항이 생길때 서버를 재접속하는게 아닌, 실행상태에서 수정되게 하는 모듈
//전역설치
npm install nodemon -g
//프로젝트별 설치
npm install --save-dev nodemon
- 실행은 ‘node 파일명’ 대신에 ‘nodemon 파일명’으로 서버를 실행해주면 된다.
response.json(), JSON.stringify(), JSON.parse()
response.json()
- 응답이나 요청을 데이터를 주고 받는 특정상황에서만 사용됨
- experss 메소드로서, 서버에서 응답으로 보낼 데이터를 json형식으로 바꿔서 보내겠다는 의미, 아래 두 코드를 축소
//축소전 res.setHeader("Content-Type", "application/json");
//send 또는 end
res.end(JSON.stringify({ message: "/ endpoint" }));
//축소후
//express모듈 선언
const express = require("express");
const app = express();
app.use(express.json());
res.json({ message: "/ endpoint" });
- 클라이언트가 서버에서 받아온 데이터를 파싱해서 사용하겠다는 의미
fetch('api주소', {method: 'GET'})
.then(response => response.json())
.then(result => //여기에 로직 작성)
JSON.stringify()
- ()안에는 josn형태로 변환할 자바스크립트 객체가 들어간다.
const stringify = JSON.stringify(자바스크립트객체)
JSON.parse()
- ()안에는 자바스크립트 객체로 변환할 json객체가 들어간다.
const parse = JSON.parse(json객체)
웹끼리 통신을 실제로는 아스키코드로 변경해서 주고받는데 여기서 문자열만 아스키코드로 변경가능하기에 주고받는 것은 무조건 문자열이어야 한다. 그렇기에 응답도 json으로 변환시켜서 보내고 받을때도 json을 파싱해서 사용함
서버에서 요청데이터를 받아오는 4가지 방법
파라미터와 경로 변수처럼 url로 데이터를 받는 경우는 GET,DELETE 메소드가 주로 쓰이고, 이외는 body나 header로 받는다.
Body로 받기
기본적으로 사용하는 방법으로서, 요청바디에 데이터를 담아서 보내고 서버가 받아온다.
//postman 이용해서 json형식으로 보내기
{
"data" :{
"id": 1,
"content": "노드"
}
}
경로 변수로 받기 - Path Variable
//뒤에 /로 구분하고 변수명 적지말고 value값만 적어준다.
//http://localhost:8000/userposting/1
const userPosting = (req, res) => {
const { userid } = req.params
}
//라우팅 파일에 위에 변수명으로 동일하게 :변수명으로 추가
app.get("/userPosting/:userid", userPosting);
파라미터로 받기
//뒤에 ?로 구분하고 아래 넣어줄 변수명으로 동일한 변수명으로 값을 넣어준다.
//http://localhost:8000/userposting?userid=1
//1
const userPosting = (req, res) => {
const { userid } = req.query;
}
//2
const userPosting = ({query : { userid }}, res) => {
//userid 변수로 바로사용 가능
}
header로 받기
//postman 이용해서 json형식으로 보내기
{
"data" :{
"id": 1,
"content": "노드"
}
}