헬창 개발자

express 모듈을 사용해 서버 만들기 본문

공부방

express 모듈을 사용해 서버 만들기

찬배 2022. 8. 18. 01:10

1.1 express 설치와 사용

터미널을 열어 $ npm install express를 입력해주면 해당 프로젝트 폴더에 ‘node_modules’ 폴더가 생긴것을 확인 할 수 있다.

그리고 파일 수정할 때마다 서버를 종료하고 재실행해야만 변경사항이 반영되지만 nodemom을 사용하면 파일들을 감시하고 있다가 node.js 수정 시 자동으로 서버를 재시작해준다

$ npm install -D nodemon

이제 $ node 파일명 대신 $ npx nodemon 파일명을 입력해주면 중간에 파일을 수정하더라도 변경사항이 반영된다.

  • express 사용법1
const express = require('express');
const app = express()

app.get('/', (req, res) => {
    res.send('Hello World!');
});

app.listen(8080, () =>
    console.log('8080포트에서 서버 실행중'));

위 코드는 기본적인 express 사용법이다. require()를 통해 모듈을 불러오는 것까지 동일하지만 http 모듈은 res객체에 write()를 사용했지만 express의 res객체는 send() 메서드를 통해 웹에 문자열을 보내고 종료하는 기능까지 가능하다.

 

  • express 사용법 2
const express = require('express');

const app = express();
app.set('port', process.env.PORT || 8080);

app.get('/', (req, res) => {
    res.sendFile(__dirname + '/index.html');
});

app.listen(app.get('port'), () => {
    console.log(app.get('port'), '번 포트에서 서버 실행 중 ..')
});
<!DOCTYPE html>
<html lang="ko">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>express로 웹 만들기</title>
  </head>
  <body>
    <h2>express로 웹 만들기</h2>
    <p>메인 페이지 입니다.</p>
  </body>
</html>

app.set(키, 값)은 키, 값 파라미터를 이용하여 키에 값을 지정하도록 하는 함수이다.

app.set(’port’, 포트번호)을 통해 서버가 실행될 포트를 지정한다.

process.env.PORT는 해당 객체에 기본 포트번호가 있으면 해당 포트를 사용한다는 뜻이고 그렇지 않으면 8080포트를 사용한다는 뜻이다.

app.get(키)은 app.set()이 처리한 데이터를 가져오는 함수이며 GET요청이 들어 올 때 어떤 응답을 할 지 적어주면 된다. 여기서는 sendFile()을 통해 index.html 파일을 불러올라고 해주고 있다.

app.listen()을 통해 해당 포트를 연결하고 서버를 실행한다.

1.2 http 요청 메서드 - GET, POST, PUT, PATCH, DELETE

http 요청 메서드는 클라이언트가 웹 서버에게 자신의 목적을 알리는 수단을 의미한다.

이런 저런 방식으로 요청이 들어와도 하나의 규격화된 방식으로 서버와 소통하며 응답을 보내줄 수 있기 때문에 필요하다.

  • GET : 리소스를 얻을 때 사용
  • HEAD : 문서의 정보를 얻을 때 사용
  • POST : 리소스를 전송할 때 사용
  • PUT : 내용 전체를 갱신할 때 사용
  • PATCH : 내용을 부분적으로 갱신할 때 사용
  • DELETE : 파일을 삭제할 때 사용

'공부방' 카테고리의 다른 글

API????????  (3) 2022.08.21
express 미들웨어  (0) 2022.08.19
npm 명령어와 node.js 모듈의 관하여  (0) 2022.08.17
자바스크립트 동기/비동기 부셔버리기  (0) 2022.08.12
자바스크립트 리마인드  (0) 2022.08.11
Comments