본문 바로가기
모바일 웹, 앱 개발

nodejs 서버를 이용한 웹페이지 만들기2 (여러 페이지 생성+html 파일 생성)

by 히즈피스 2024. 6. 16.

이번에는 여러 페이지를 만드는 법을 배워보자.

대부분 url을 기준으로 naver.com/news 혹은 naver.com/blog 등 / 위에 구분할 수 있는 글자를 만들어서 페이지를 구분한다.

똑같은 방식으로 만들어보자.

 

const express = require('express')
const app = express()

app.listen(8080, ()=> {
    console.log('http://localhost:8080 에서 서버 실행 중')
})

app.get('/',(요청,응답)=>{
    응답.send('반갑다')
})

app.get('/url',(요청,응답)=>{
    응답.send('데이터')
})

 

이렇게 할 경우 기본 웹 주소인 http://localhost:8080은 아래와 같이 나오고,

 http://localhost:8080/url은 아래와 같이 나온다.

 

여기서 잠깐 문법 하나만 보고 가자.

app.get('/url',(요청,응답)=>{
    응답.send('데이터')
})
app.get('/url',

이 부분은 누가 /url 접속시 app.get()이라는 함수가 실행되게 되는 것이다.

(요청,응답)=>{
    응답.send('데이터')
})

그 다음에는 위의 콜백함수(함수 안에 호출된 함수를 이르는 말)가 실행되는데 자세한 내용은 express라는 library의 함수 사용법일 뿐이기 때문에 다 이해할 필요 없다. 다른 library에 대해서도 다 외울 수 없고 외울 필요도 없기 때문에 그냥 이렇게 쓰는 거구나 하고 넘겨야 한다.

 

참고로 => 이 표시는 function(요청,응답)과 같은 표시로, 그냥 함수를 편히 표현하기 위해서 사용한 표시이다.

javascript에서 어떤 함수들을 순차적으로 사용하고 싶을 경우에 사용한다고 한다.

=> 이런 콜백함수는 어디서든 다 쓸 수 있는 것은 아니고, express와 같은 라이브러리에서 사용하라고 해놓은 곳에서 사용하면 된다고 한다.

나도 정확히 다 이해한 것은 아니다. 그냥 이렇게 쓰면 되는구나 싶다.

 

여러 페이지 생성하는 것은 해봤는데 그냥 글자만 보내는게 아니고 제대로된 웹페이지를 보여주고 싶다면 밑에 내용을

app.get('/',(요청,응답)=>{
    응답.send('반갑다')
})

아래처럼 바꿔주면 된다.

app.get('/',(요청,응답)=>{
    응답.sendFile(__dirname + '/index.html')
})

 

그리고 index.html 파일이 어디서 알아서 생겨나는 것이 아니므로, 새로운 파일을 index.html이라는 이름으로 만들어주고

!를 치고 엔터를 눌러보자. 알아서 뿅하고 기본 포맷이 생긴다. 그 다음에 아래와 같이 제목, 내용을 html태그를 달아서 만들어보자.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <h4>제목</h4>
    <p>내용</p>
</body>
</html>

 

그러면 아래와 같이 이렇게 표현된다.

별거 없어보이지만, 이 내용을 예쁘게 만들어주는건 앞으로 차차 배울테니 내가 html로 페이지를 만들어서 웹페이지를 사용자에 보여줬다는 것에 만족하자.