Express로 웹 서버 만들기

E

Express란?

Express는 Node.js를 위한 웹 프레임워크로 http 모듈을 사용하는 것 보다 손쉽게 웹 서버를 구축 할 수 있습니다.

Express 설치하기

먼저 새로운 폴더를 생성하고 터미널을 통해 Node.js 프로젝트를 초기화 후 express 모듈을 설치합니다.

$ npm init -y
$ npm install express

Express 서버 만들기

npm init을 통해 만들어진 package.json의 main항목에 적혀있는대로 앱 실행 파일인 index.js를 생성하고 아래 코드를 작성합니다.

// Express 모듈을 불러옵니다.
const express = require("express");

// Express 객체를 생성합니다.
const app = express();

// 해당 서버의 루트('/')에 GET 방식으로 접근시 Hello Express를 출력합니다.
app.get("/", function(req, res) {
	res.send("Hello Express");
});

// 3000번 포트로 해당 서버의 접근을 허용합니다.
app.listen(3000, function() {
	console.log("app listening on port 3000");
});

Express 모듈을 사용해 객체를 생성하고 루트 페이지로 접근시 Hello Express를 출력하는 예제입니다. 터미널을 이용해 해당 파일이 있는 위치로 이동 후 Node.js 앱을 실행하여 결과를 확인해보겠습니다.

$ node index.js

앱 실행 후 인터넷 브라우저의 주소창에 http://localhost:3000을 입력하면 아래와 같은 결과가 출력됩니다.

라우팅

라우팅은 URI 및 특정한 HTTP 요청 메소드에 대한 응답 방법을 결정하는 것으로 index.js의 8번째 라인의 함수가 라우터 입니다. express는 다양한 요청 메소드를 지원하는데 기본적으로는 GET과 POST가 있으며 아래와 같은 형식을 갖습니다.

app.METHOD(PATH, HANDLER)

위 구문에서 app은 express의 객체, METHOD는 GET, POST 등 HTTP 요청 메소드이며 PATH는 URI경로, HANDLER는 입력된 경로로 접근 시 실행할 함수입니다.

// 해당 서버의 루트('/')에 GET 방식으로 접근시 Hello Express를 출력합니다.
app.get("/", function(req, res) {
	res.send("Hello Express");
});

// http://localhost:3000/test 주소로 GET 방식으로 접근시 실행.
app.get("/test", function(req, res) {
	res.send("Test");
});

// http://localhost:3000/test 주소로 POST 방식으로 접근시 실행.
app.post("/test", function(req, res) {
	res.send("Post Test");
});

// 정규식을 사용하여 http://localhost:3000/{*page} 주소로 GET 방식으로 접근시 실행.
app.get("/*page", function(req, res) {
	res.send("regexp");
});

// http://localhost:3000/user/{*} 주소로 GET 방식으로 접근시 마지막 주소에 입력된 값이 id에 입력되어 실행.
app.get("/user/:id", function(req, res) {
	res.send("ID = " + req.params.id);
});

위와 같이 라우터는 다양한 방법으로 만들 수 있으며 URI는 정규 표현식을 사용할 수도 있고 파라미터를 이용해 임의의 값을 입력받도록 할 수도 있습니다.

라우터가 정상적으로 작동하는지 확인하기 위하여 Node.js 앱을 실행하여 결과를 확인해보겠습니다.

특정 문자열을 주소로 입력받을 수 있습니다.
URI에 정규식을 사용할 수 있습니다.
파라미터를 이용해 정의되지 않은 값을 주소로 입력받을 수 있습니다.

지금까지 Node.js Express 모듈의 기본적인 사용방법을 알아보았으며 HTTP 요청 메소드의 종류는 expressjs 홈페이지에서 확인할 수 있습니다.

Add comment

By berabue

최신 글

보관함

최신 댓글

메타