🐱🚀 코드는 깃허브 레포지티에 업로드
스케줄앱 강의를 들으면서 개념과 코드를 정리해보려 한다.
NodeJS로 백엔드를 설계하고 프론트엔드는 최대한 간단하게 구현하기 위해 부트스트랩을 활용한다
DB는 비교적 이해하기 쉬운 NoSQL 중 monogoDB를 사용한다.
서버란 내가 주문한 것을 가져다 주는 기계이다.
주소창에 URL을 입력해서 무언가를 요구하면 서버는 그 URL을 확인하고 내가 주문한 것을 데이터베이스에서 찾아서 다시 나에게 가져다 준다.
자바스크립트는 html을 조작하기 위해 태어났다.
자바스크립트가 동작하기 위한 엔진은 각 브라우저에 설치되어 있는데 크롬의 엔진이 너무 좋다보니 이 엔진만 떼어내서 자바스크립트를 PC에서 사용할 수 있게 해준 것이 NodeJS이다.
자바스크립트가 프로그래밍 언어가 되면서 웹 서버까지 만들 수 있게 된다.
이곳에서 nodeJS를 설치해준다.
노드JS설치하면서 npm이 같이 설치된다.
npm init
을 터미널에 입력하면 package.json이 만들어지는데 이는 설치한 라이브러리 목록을 자동으로 기록해주는 파일이다.
이 기록파일을 통해서 다른 컴퓨터에서 동일한 서버를 구동시키기 위해 필요한 모듈을 하나하나 설치할 필요없이 npm i
만 입력하면 기록파일을 참고하여 자동으로 설치를 해준다.
npm install express
를 입력하면 express 라이브러리가 설치된다.
express는 NodeJS로 서버를 아주아주 쉽게 짤 수 있도록 도와주는 모듈이다.
생성된 package.json에 들어가서 script:
에 "type" : "module",
을 추가해준다.
서버를 구축할 폴더에 app.js파일을 만든다.
파일안에 express 객체를 만들고 listen함수로 서버를 오픈할 수 있다.
import express from {express}
const app = express()
app.listen(8080)
다시 객체의 get함수를 쓰면 get요청이 왔을 때 반응하도록 설계할 수 있다.
두 번째 파라미터는 콜백함수라는 것으로 함수에게 전달해주는 함수이다.
app.get('/', ()=>{
res.send("hello, world")
})
콜백함수는 요청과 응답이라는 객체가 들어가기 때문에 인자를 적어서 받아줘야 한다.
나는 req
와 res
를 적어서 req
은 요청내용이 담을 것이고, res
은 응답할 방법들을 담을 것이다.
nodemon을 사용하면 수정할 때 마다 서버를 껐다가 다시 켜야 하는 불편함을 해결할 수 있다.
npm install -g nodemon
으로 nodemon을 설치한다.
nodemon app.js
를 터미널에 입력해서 실행시킨다.
이제부턴 수정 후 ctrl+s를 누를 때 마다 서버가 자동으로 재실행 된다.
클라이언트에서 서버에게 데이터를 form전송하면 서버는 이를 req
안에 저장한다.
app.post('/add', function(요청, 응답){
console.log(요청.body);
});
보통 body에 데이터를 담아서 보내는 post요청은 req.body를 통해 body의 값을 꺼낼 수 있다.
하지만 html에서는 보내는 form요청은 동일하게 body에 값이 있지만 특별한 코드를 작성하지 않으면 값을 꺼낼 수가 없다.
html form요청의 body를 보기 위해선 app.use(express.urlencoded({extended: true}))
를 추가해주어야 한다.
REST API는 API규약의 한 종류이다.