MVC에서 모델은 애플리케이션의 정보(데이터)를 나타내며, 뷰는 텍스트, 체크박스 항목 등과 같은 사용자 인터페이스 요소를 나타내고, 컨트롤러는 데이터와 비즈니스 로직 사이의 상호동작을 관리한다.
  • 는 사용자가 볼 결과물을 생성하기 위해 모델로부터 정보를 얻어 온다.
  • 뷰는 화면단, 사용자 인터페이스와 같이 보여지는 화면 부분을 의미한다. 

1. 뷰 분리 전 

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

app.get("/", (req, res) => {
res.send(`
<!DOCTYPE html>
<html lang="ko">
 
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
 
<body>
여기는 루트입니다.
</body>
 
</html>`)
});

app.get("/login", (req, res) => {
res.send(`
<!DOCTYPE html>
<html lang="ko">
 
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
 
<body>
<input type="text" placeholder="아이디"><br>
<input type="text" placehodler="비밀번호"><br>
<button>로그인</button>
</body>
 
</html>`)

})

app.listen(3000, function () {
console.log("서버 가동 ");
})

 

2. 뷰 분리 후 

1. 뷰 폴더를 따로 분리해준다. 

폴더 views > 폴더 home > 파일 index.ejs, login.ejs 생성 

 -> 이때 ejs는 안에 html코드를 어떤 엔진으로 해석할지 정하는 것 

 

2. index.ejs 파일에는 루트 경로의 코드를 옮기고 , login.ejs 파일에는 로그인 경로의 코드를 옮긴다. 

 

3. 앱세팅  : 화면 뷰를 위한 뷰엔진 세팅하기 

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

//앱세팅
app.set("views", "./views");
app.set("view engine", "ejs");


app.get("/", (req, res) => {
res.render("home/index");
});

app.get("/login", (req, res) => {
res.render("home/login");
})

app.listen(3000, function () {
console.log("서버 가동 ");
})

render 함수를 사용해 도메인에 들어왔을 때 ejs 코드들로 이동할 수 있게 연결해준다. 

'Bakend > Node.js' 카테고리의 다른 글

npm 백엔드 1탄  (0) 2023.09.01
1. 브라우저가 요청하는 경로로 이동해주는 라우팅기능 
const express = require('express');
const app = express()

app.get("/", (req, res) => {
res.send("여기는 루트")
});

app.get("/login", (req, res) => {
res.send("여기는 로그인 화면 ");
})

app.listen(3000, function () {
console.log("서버 가동 ");
})

- npm : node.js에서 사용하는 모듈 

- npm을 이용해서 exptress 모듈(node.js를 이용해 웹프레임워크를 만든다.)을 설치   npm install express -save

- 웹프레임워크 : 프론트에서 백엔드에게 요청하고 응답을 하는 그런 기능 및 과정 

 

- 서버의 중심 파일 app.js 

- app : localhost로 들어온 express 앱을 의미 

- listen : 서버가 열려있음, 듣고있음을 의미 

- 실행법 : Terminal에 node app.js (파일을 v8 엔진을 통해 코드를 해석해달라는 의미 )

- 서버 끄는 방법 : control + C

- 백틱 : 영어 자판에서 ₩

 

  • Port : 서버에는 주소,  포트(입구)가 있어 서버에 들어갈 수 있다. 포트는 각 특정 포트가 존재해 이때 서버가 "linsen" 하고 있어야 들어갈 수 있다. 포트는 정해진 규격이 존재 
  • Locla host : 내 컴퓨터의 서버 
  • http 메소드 : 서버에게 요청을 할때 요청의 목적, 종류를 알려주기 위해 사용하는 수단 (프론트에서 백엔드로 요청 보내는 방식) 
    • Get방식 : 주소창에서 데이터를 넘기는 / 요청을 하는 ? 
    • Port방식 ; 주소창이 아니라 body 를 통해 내부적으로 요청을 보낸다.
< 라우팅 > 
- 네트웨크에서 경로를 선택하는 프로세스( 특정 포트로 들어가더라도 그 안에서 여러 경로가 존재한다. ) 
- URL(경로) 및 특정한 HTTP 요청 메소드 (GET, POST)의 클라이언트 요청에 응답하는 방법을 결정
- 각 라우트는 하나 이상의 핸들러 함수(콜백함수)를 가질 수 있고, 라우트가 일치할 때 실행된다.
ref) 콜백함수  : 다른 코드의 인수로서 넘기는 실행가능한 함수 , 어떤 함수가 끝나고 그 다음 함수를 실행하는 함수
app.get( PATH(경로), HANDLER),  app.post( PATH(경로), HANDLER)
- app은 express 객체
- 메소드에는 HTTP 요청 메소드로 GET, POST 방식이 존재
- PATH 에는 해당하는 프로젝트 내의 서버 경로
- HANDELER는 라우트가 일치할 때 발생하는 콜백함수 

 

- 컴퓨터 네트워크는 "노드"라고 하는 여러 시스템과 이런 노드를 연결하는 경로(링크)로 구성된다. 

- 상호 연결된 네트워크에서 두 노드간 통신은 여러 경로를 통해 이루어진다. 

- 이때 라우팅은 미리 정해진 규칙을 사용해 최상의 경로를 선택하는 프로세스

-> 중요성 : 네트워크 통신의 효율성을 높인다. 네트워크가 정체 없이 최대한 많은 용량을 사용할 수 있도록 데이터 트래픽을 관리함으로써 , 네트워크 장애를 최소화해준다. 

'Bakend > Node.js' 카테고리의 다른 글

MVC 패턴의 view 분리하기 (뷰 최적화)  (0) 2023.09.01

+ Recent posts