본문 바로가기
기타 프로그램

Node.js 웹 서버 라우팅 하기(2)

by 고체물리학 2022. 2. 24.

- 라우팅: 요청이 들어온 url에 따라 서버가 다르게 처리하는 것

const http = require('http');


users =  ['Kim','Lee','Yoo']
//Arrow Function으로 변경
const server = http.createServer((request,response) => {
    // response.end('<h1>Hello World</h1>');
    if (request.url === '/'){
        response.end('<h1> Welcome! </h1>')
    }else if(request.url === '/users'){
        response.end(`<h1> ${users} </h1>`);
    }else{
        response.end('<h1>Page Not Available</h1>')
    }
});
server.listen(3000);

요청된 url의 첫 페이지는 '/'

사용자 리스트를 보여주는 페이지는 '/users'

나머지 url은 이용할 수 없다고 표시


라우팅을 더 편하고 간편하게 설정하려면 서드 파티 모듈 Express 설치

npm install express

터미널 창에서 설치 완료한 뒤 불러서 사용한다

 

Express 모듈은 Node.js 환경의 서버 프로그램을 만들 때 사용하는 프레임 워크

 

app.get('/',(request,response) => {
    response.end('<h1>Welcome!</h1>');
});

app.get('/users',(request,response) => {
    response.end(`<h1>${users}</h1>`);
});

app.get('/users/:id',(request,response) => {
    const userName = users[request.params.id-1]
    response.end(`<h1>${userName}</h1>`);

});

app.get('*',(request,response) => { //* 모든 path를 의미 
    response.end('<h1>Page Not Available</h1>')
});
app.listen(3000);

:id는 request가 갖는 params.id 속성을 의미

id 가 1 이면 userName은 users 배열의 0번째 index를 가져와서 h1태그로 응답한다.

 

 

결과를 보면 users 배열에 없는 건 Undefined이 출력된다

선언된 게 없을 때 표시하는 페이지도 예외처리로 만들어야겠다

이외 페이지는 Page Not Available로 잘 출력된다. 

 

 

 

서버를 개발하다 보면 코드를 추가하고 확인해야 하는데 node 명령어는 코드를 추가할 때마다 개발자가 다시 실행해줘야 한다

nodemon를 사용하면 코드 변화를 알아서 감지해서 자동으로 재실행해준다

 

npm install -g nodemon

코드 변화가 생길 때마다 node main.js를 재실행하는 것을 볼 수 있다

반응형

댓글