본문 바로가기
프로그래밍/node

node js #2 URL 라우팅

by JobKea 2020. 7. 6.
반응형

웹 사이트에 접속하기 위하여 URL 주소를 접속하게 되는데

 

그런 접속 주소에 따라 서버가 어떤 반응을 할지 정하는 것이다.

 

예를 들어 http://localhost:3000/ 이라는 주소로 접속을 하게되면 

 

"http://localhost:3000"까지가 서버를 접속하기 위한 주소이고 '/' 부터는 서버내에서 

어떤 파일을 사용자가 원하는지에 대한 내용이다.

 

그리고 '/'의 경우 전통적으로 가장 최상단에 기본 파일을 말한다.

대부분. index.html, main.html, default.html 와 같이 특정단어 + 확장자 파일을 불러오게 된다.

 

여기서 URL 라우팅은 / 뒤로 오는 주소에 따라 서버에 어떤 파일을 사용자한테 제공할지 정하는것을 말한다. 

 

 

File : app.js

var express = require('express')

var app = express()
app.listen(3000, function(){
    console.log("Start, ! express server on port 3000 !!")

});

app.get('/', function(req, res ){
    res.send("<h1>hi friend!</h1>")
    
})

 

위와 같은 방식으로 app.js를 입력하고 nodemon app.js 명령어를 사용하여 서버를 실행시키면 아래와 같은 화면을 볼수있다.

사용자가 / 이라는 최상단 주소를 입력했을때 html 로된 텍스트를 제공하는 것이다.

 

물론 이런 텍스트 방식이 아닌 특정 html 파일을 제공할 수도 있다 . 

아래와 같은 방식을 사용한다.

File : app.js

var express = require('express')

var app = express()
app.listen(3000, function(){
    console.log("Start, ! express server on port 3000 !!")

});

app.get('/', function(req, res ){
    //res.send("<h1>hi friend!</h1>")
    res.sendFile(__dirname + "/public/main.html")
})

 

여기서 __dirname는 node에서 제공하는 경로제공 명령어 이다.

현재 해당 명령어를 실행하는 폴더경로를 제공하고 거기에 소스내에 있는 경로를 추가하면 

특정 html 파일을 제공할수 있다.

현재 프로젝트의 폴더구조는 아래와 같다 .

 

 

그리고 이제 제공할 html 파일의 내용을 채운다.

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <meta name="decription" content="">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>main.html</title>

</head>
<body>
    <h1>main page</h1>
    <p>Lorem ipsum dolor sit, amet consectetur adipisicing elit. Ab sunt vitae cupiditate quibusdam iste sapiente perspiciatis dolor, illo, mollitia doloribus vel voluptate. Placeat laboriosam mollitia laudantium facilis quidem! Molestiae, tenetur.</p>

    
</body>
</html>

간단하게 로렘 입숨을 사용하여 html 내용을 넣고 asp.js 를 실행한다.

 

명령어 : nodemon app.js

그 뒤 서버를 접속해보면 아래와 같이 나온다.

 

 

반응형

'프로그래밍 > node' 카테고리의 다른 글

node.js #1  (0) 2020.07.05

댓글