http 모듈로 웹 서버를 만들 때 코드가 보기 좋지 않고, 확장성도 떨어진다.

직접 만들거나 npm init 명령어로 생성
npm i express
npm i -D nodemon
서버 구동의 핵심이 되는 파일
const express = require('express');
const app = express();
app.get('/', (req, res) => {
res.send('hello express');
});
app.post('/', (req, res) => {
res.send('hello express');
});
app.listen(3000, () => {
console.log('익스프레스 서버 실행');
});
코드를 보면 http로 모듈을 썻을 때 if(req.method === 'GET'), elseIf(req.method === 'POST') 이렇게 했을 때 보다 app.get, app.post 식으로 매우 간편하게 변한 것을 확인 할 수 있다
기존
app.listen(3000, () => {
console.log('익스프레스 서버 실행');
});
app.set()을 이용할 시
app.set('port', process.env.PORT || 3000)
app.listen(app.get('port'), () => {
console.log('익스프레스 서버 실행');
});
위 처럼 app.set으로 포트번호를 전역 변수 같이 쓸 수 있다.
nodemon 사용시 서버 코드에서 변경이 있을 때 서버를 자동으로 재실행 해준다. 다시 껏다 킬 필요 x

만약 nodemon app 했을 때 실행이 안될 경우, global로 설치되었을 수도 있으니 package.json에 표시해준 후 npx로 실행시켜 줌

위 처럼 없는 주소를 쳣을 때 자동으로 404에러를 발생시켜주고, 마찬가지로 네트워크 에러도 처리해준다.
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "npx nodemon app"
},
위 처럼 npm start 만 하면 자동으로 npx nodemon app이 실행되게 설정하면 편하다