노드
노드 Express 웹 서버 시작하기
포칼이
2023. 4. 17. 15:47
Express 소개
http 모듈로 웹 서버를 만들 때 코드가 보기 좋지 않고, 확장성도 떨어짐
- 프레임워크로 해결
- 대표적인 것이 Express, Koa, Hapi
- 코드 관리도 용이하고 편의성이 많이 높아짐
package.json 만들기
직접 만들거나 npm init 명령어로 생성하면 된다.
- nodemon은 소스 코드 변경 시 서버를 재시작해준다.
//package.json
{
"name": "learn-express",
"version": "0.0.1",
"scripts": {
"start": "nodemon app"
},
"devDependencies": {
"nodemon": "^2.0.3"
},
"dependencies": {
"cookie-parser": "^1.4.5",
"express": "^4.17.1",
"express-session": "^1.17.1",
"morgan": "^1.10.0"
}
}
이것을 package.json이란 파일을 만들어서 직접 적어도(직접 작성한 후에는 npm i를 해주자) 되고 아니면
npm i express
npm i -D nodemon
으로 만들어 주면 된다.
app.js 작성하기
서버 구동의 핵심이 되는 파일
- app.set('port', 포트)로 서버가 실행될 포트 지정
- app.get('주소', 라우터)로 GET 요청이 올 때 어떤 동작을 할지 지정
- app.listen('포트', 콜백)으로 몇 번 포트에서 서버를 실행할지 지정
//app.js
const express = require('express');
const path = require('path');
const app = express();
app.set('port', process.env.PORT || 3000);
app.get('/', (req, res) => {
res.send('Hello, Express');
//res.sendFile(path.join(__dirname, '/index.html'));
});
app.listen(app.get('port'), () => {
console.log(app.get('port'), '번 포트에서 대기 중');
});
http 모듈로 서버를 만들때와 거의 비슷하다.
그리고 요청했을 때의 url이 밖으로 꺼내져 있는 것을 볼 수 있다.
이말은 즉슨, http 때처럼 요청에 대한 처리를 if ~else if 로 처리해 주지 않아도 된다는 소리다.
또한 nodemon을 통해 실행하면 코드의 변경이 있을 때마다 서버를 껏다 켯다 하지 않아도 된다. 실행할때 nodemon app을 하면 된다.