본문 바로가기
Programming/Node.js

Node.js에서 서버 구동해서 기본폴더 지정해서 디폴트 index.html 파일 보여주는 방법

by 혀코 2020. 1. 9.

안녕하세요. 혀코입니다.

저번에 Node.js에서 서버를 구동한 다음 html 파일을 보여주는 것에 대해 알아보았는데요.

이번에는 지난번과 다른 방법인 기본폴더를 지정해서 디폴트 index.html 파일을 보여주는 것에 대해 알아보겠습니다.

지난번 실행했던 코드는 다음과 같습니다.

<!DOCTYPE html>

<html>
    <head>

    </head>
    <body>
        <h1>This is index.html</h1>
    </body>
</html>
const express = require('express')

const app = express()

app.get('', (req, res) => {
    res.sendFile(__dirname + '/index.html')
})

app.get('/about', (req, res) => {
    res.send('<h1>This is About Page</h1>')

app.listen(3000, () => {
    console.log('I love you 3000')
})

위의 지난번 코드를 변경해 보겠습니다.

이번에는 루트 폴더에서 src 폴더를 만들고 app.js 파일을 넣어놓고,

루트 폴더에서 public 폴더를 만들고 index.html파일을 넣어놓겠습니다.

const path = require('path')
const express = require('express')

const app = express()
const publicDirectoryPath = path.join(__dirname, '../public')

app.use(express.static(publicDirectoryPath))

app.get('', (req, res) => {
    res.send('<h1>I am Iron Man</h1>')
})

app.get('/about', (req, res) => {
    res.send('<h1>This is About Page</h1>')
})

app.listen(3000, () => {
    console.log('I love you 3000')
})

폴더를 지정하려면 현재 폴더 변수를 받아서 해당 루트 폴더가 아니라면 해당 경로를 지정해줘야 합니다. 폴더 경로를 효과적으로 지정하기 위해서는 path.join 함수를 사용하며 path.join은 Node.js 내장 라이브러리인 path가 필요합니다.

path.join에서 첫번째 parameter로 __dirname은 현재 폴더 위치값을 받아오고, ../public은 한단계 상위로 가서 public 폴더를 찾는 것입니다. 이로써 path.join은 두개의 값을 합쳐 지정할 폴더의 경로를 나타냅니다.

변수 publicDirectoryPath 에 폴더 경로를 저장하고 나서, app.use를 사용해서 기본 폴더를 지정해 줍니다.

위의 코드처럼 작성하면, app.js에 'I am Iron Man' 텍스트가 있더라도 기본으로 지정된 폴더의 디폴트 파일인 index.html을 보여주게됩니다.

 

 

이렇게 Node.js에서 서버구동해서 html 파일을 보여주는 방법에 대해서 알아봤습니다.

유용하셨다면, 공감과 구독 부탁 드립니다.

감사합니다.

댓글