본문 바로가기
카테고리 없음

express 서버 만들기

by 용용이아바이 2024. 3. 30.
728x90

express 설치

익스프레스는 기본 라이브러리가 아니므로 설치를 해야 한다. Node.js와 같이 설치되는 npm으로 설치하면 된다.

mkdir example # example 디렉터리 생성
cd example # example로 이동
mkdir express-server # express-server 디렉터리 생성
cd express-server # express-server로 이동

npm은 nodejs package manager의 약자로 말 그대로 Node.js에서 사용하는 외부 라이브러리 패키지 관리를 쉽게 하는 도구다.

npm install express

설치가 완료되면 ls 명령으로 무엇이 설치되었는지 확인한다.  [node-modules] 디렉터리와 package-lock.json, package.json 파일이 보이면 성공이다.

express 서버 만들기

간단한 익스프레스 서버를 작성한다. localhost:3000으로 접근하면 "hello express"를 반환하는 서버다.

const express = require("express"); // express 모듈 불러오기
const app = express(); // express 초기화 후 app에 할당

const port = 3000;

app.get("/", (req, res) =>{ // "/"으로 요청이 오는 경우 실행
	res.set({"Content-Type": "text/html; charset-utf-8" }); // 헤더값 설정
    res.end("hello express");
});
app.get("/home", (_, res) => res.end("home");
app.get("/user", user);
app.get("feed", feed);

function user(req, res) {
	const user = url.parse(req.url, true).query;
    
    res.json(`[user] name : ${user.name}, age: ${user.age}`);
};

function feed(_, res) {
	res.json(`<ul>
                <li>picture1</li>
                <li>picture2</li>
                <li>picture3</li>
              </ul>
`);
}

app.listen(port, () =>{ // 서버를 기동해 클라이언트 요청을 기다린다.
	console.log(`start server : user ${port}`);
});

express package를 로딩해 express에 할당한다. express()를 실행해 express 인스턴스를 만들고 app에 할당한다.

app.get을 사용해 url의 path가 '/'이면서 http method가 get()인 경우 콜백 함수를 실행한다. 반환할 콘텐츠의 정보를 설정한다. 결과의 콘텐츠 타입은 html이며 결과에 보통 한글을 넣을 때가 많으므로 charset을 utf-8로 변경했다.

res.json()함수를 사용했는데 응답을 JSON 타입으로 보여주기도 하고, charset=utr-8을 자동으로 설정해주므로 한글을 간단하게 처리할 수 있다.

호이스팅을 사용하기 위해 function을 사용했다. 또한 (_, res) 에서 _ 기호를 넣었는데, 사용하지 않는 변수는 빼는 것이 원칙이지만, 함수 인터페이스 구조상 넣을 수 밖에 없을 때의 관례다.

listen() 함수를 사용해 클라이언트의 요청을 기다린다. port는 3000번을 사용했다.

 

 

728x90