
🐱🚀 코드는 깃허브 레포지티에 업로드
스케줄앱 강의를 들으면서 개념과 코드를 정리해보려 한다.
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규약의 한 종류이다.