Express.js를 사용하여 요청+응답을 수행하는 서버 만들기

developsy·2022년 7월 8일
0

설치한 express를 이용하여 서버를 만들어보자.

const express = require("express");

const app = express();

app.get('/currenttime', function(req, res){
  res.send("<h1>" + new Date().toISOString() + "</h1>");
});

app.get('/', function(req, res){
  res.send("<h1>hello world!</h1>");
});

app.listen(3000);

express패키지를 require로 불러와 상수에 저장하면, 이는 함수이기 때문에 괄호를 붙여서 실행시킨 뒤 상수에 저장해준다. 그래야 express에서 제공하는 기능들을 사용할 수 있다.

app.get

app에 get이라는 메서드를 사용했는데, 이는 브라우저에서 보내는 디폴트 요청을 받는다. 첫 번째 매개변수는 도메인과 포트 뒤에 있는 경로를 받고 두 번째로는 들어온 요청에 대해 실행되어야 하는 함수를 넣어주었다. 즉 요청으로 들어온 url의 경로가 제시한 것과 같다면 그 함수를 실행시키는 방식이다. 함수는 익명함수로 주었다.

function(req, res)

express에서는 node js와 같이 자동적으로 응답, 요청에 관련된 객체를 제공해주는데, next라는 함수도 전달해준다고는 하나 아직은 중요하지 않은 듯하다. 또한 이 객체들은 node js에서 제공하는 응답, 요청 객체와는 다른 것이다.

res.send("<h1>" + new Date().toISOString() + "</h1>");

res 객체엔 send메서드를 사용할 수 있는데, 이 메서드는 이름에서 볼 수 있는 것처럼 매개변수로 데이터를 받아 그것을 응답으로 보낸다(node js에서 end를 사용한 맥락과 같음).

또한 node js에서와는 다르게 포트를 설정하지 않으면 express에서 자동으로 200으로 설정해준다. 이제 서버가 만들어졌다. 뭔가 훨씬 쉬워진 느낌이다.

const express = require("express");

const app = express();

app.get('/currenttime', function(req, res){
  res.send("<h1>" + new Date().toISOString() + "</h1>");
});

app.get('/', function(req, res){
  res.send("<h1>hello world!</h1>");
});

app.listen(3000);

----------------------------------------------------------------------
function handleRequest(request, response) {
  if (request.url === "/currenttime") {
    response.stastusCode = 200;
    response.end("<h1>" + new Date().toISOString() + "</h1>");
  } else if (request.url === "/") {
    response.stastusCode = 200;
    response.end("<h1>hello world!</h1>");
  }
}

const server = http.createServer(handleRequest);

server.listen(3000);

node js와 express의 비교. express가 뭔가 훨씬 더 구조화된 것처럼 보인다. 왜 express를 쓰는지 알 것 만도 같다.

profile
공부 정리용 블로그

0개의 댓글