[Node.js/mongoDB] 2. 개발환경 세팅과 라우팅

지렁·2023년 10월 28일
1

개발 환경 세팅

(express 라이브러는 코드 작성을 편리하게 해주는 라이브러리이다)

  1. nodejs LTS 버전 다운
  2. 프로젝트 생성
    • server.js 파일만들기
    • npm init -y 로 package.json 파일 생성
    • npm install express 설치

시작

우선 server.js 에는 기본 코드가 필요하다

//express 라이브러리 사용법
const express = require('express')
const app=express()

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

// 페이지 접속 시
app.get('/', (req, res) => {
  res.send('hello')
}) 

그리고 server.js 실행시키기 위해

node server.js 입력
아니면 수정사항 바로바로 적용하려면
npm install -g nodemon 설치 후
nodemon server.js 입력


페이지 만들어보기

기본 코드

라우팅 방법

app.get('/news',(req,res)=>{
    res.send('sunny day')
})

이렇게 내가 원하는 URL 주소를 /xxx 로 작명한 뒤 요청, 응답 을 콜백함수 파라미터로 입력하여, 접속 시 응답을 보내는 방식으로 사용한다

아니면

res.sendFile(__dirname + '/index.html')//html파일 보낸다
res.render('index.ejs') //  파일을 렌더링해서 띄운다 

🤔 둘의 차이는?

res.sendFile()은 파일을 그대로 전송하는 반면,
res.render()는 템플릿 엔진을 사용하여 동적 데이터를 포함한 웹 페이지를 생성하고 결과를 전송합니다.

res.sendFile():

  • 목적: 특정 파일을 클라이언트에게 직접 보냅니다.
  • 사용: 주로 정적 파일(예: HTML, CSS, JS, 이미지)을 클라이언트에게 전송할 때 사용합니다.
  • 코드 예시:
res.sendFile(__dirname + '/index.html');

이 코드는 현재 디렉토리의 index.html 파일을 클라이언트에게 직접 전송합니다.

res.render()

  • 목적: 템플릿 엔진을 사용하여 파일을 렌더링하고 렌더링된 결과를 클라이언트에게 보냅니다.
  • 사용: 템플릿 엔진 (예: EJS, Handlebars, Pug 등)과 함께 사용됩니다. 템플릿 엔진을 사용하면 동적 데이터를 HTML 템플릿에 삽입하여 동적 웹 페이지를 생성할 수 있습니다.
  • 코드 예시:
res.render('index.ejs', {data: 'some data'});

이 코드는 index.ejs 템플릿 파일을 렌더링하고 {data: 'some data'} 객체를 템플릿에 전달하여 동적 데이터를 페이지에 삽입합니다. 렌더링된 결과는 클라이언트에게 전송됩니다.

profile
공부 기록 공간 🎈💻

0개의 댓글