Express 는 Node.js 의 프레임워크이다.
기존에 http.createServer 를 이용해서 코드를 작성하는거보다 Express 를 사용하면
더 많은 기능들과, 서버를 제작하는 과정에서 불편함을 줄일 수 있다.
또한 수많은 개발자들에게 개발 규칙을 강제하여 코드 및 구조의 통일성을 향상시킬 수 있다.
const express = require('express'); // Express 실행
const app = express(); // app 변수에 할당
app.set('port', process.env.PORT || 3000);
// app.set('port', 포트) 로 서버가 실행될 포트 설정.
//process.env 객체에 PORT 속성이 존재 한다면 그 값을 사용하거나, 아니라면 3000번 포트를 할당.
// app.set(키, 값)을 사용해서 데이터를 저장할 수 있고. 나중에 app.get(키)를 사용해서 그 데이터를 가져올 수 있음.
app.listen(app.get('port'), () => {
console.log(app.get('port'),"번 포트에서 대기 중");
})
//위에 썼던 것처럼 app.get(키)를 사용해서 포트 번호를 사용하였다.
// app.listen(포트번호, 포트에 접속했을때 실행될 코드) 의 2개의 파라미터가 필요하다.
위의 코드대로 작성하면 3000번 포트에서 대기중이라는 문구를 볼수 있지만,
http://localhost:3000/ 로 접속해보면
라는 화면이 띄어진다.
아무런 GET 요청이 없어서인데, GET 요청이라는것은 즉, 서버에 GET(어디 페이지로 접속하려는) 요청을 서버에게 전달하고, 그 서버가 요청을 처리해준다는 것을 얘기한다.
app.get('/', (req, res) => {
res.send('Hello Express');
})
//app.get(주소, 라우터)는 어떤 주소에 대한 GET 요청이 들어올때 콜백함수가 실행되는 것이다.
//매개변수 req는 요청에 대한 정보, res 는 응답에 대한 정보가 들어 있고,
//메인 페이지로 GET 요청이 들어오면 응답으로 Hello Express 라는 문구를 전송해주는 것이다.
const express = require('express');
const app = express();
const path = require('path'); // 파일을 보낼때는 path 모듈을 사용해서 경로 지정
app.set('port', process.env.PORT || 3000);
app.listen(app.get('port'), () => {
console.log(app.get('port'), '번 포트에서 대기중');
})
app.get('/', (req, res) => {
res.sendFile(path.join(__dirname, 'index.html')); // send가 아닌 sendFile 메서드 사용
})
잘 작동되는 것을 볼 수 있다.