본문 바로가기

전체 글

#6.컨트롤러 분리하기

2022. 3. 26.

MVC패턴을 준수하며 최적화중이였음.이번에는 컨트롤러 분리할차례

*우선 컨트롤러가 어느 부분인지?

드래그 된 부분이 (기능을 수행하는)컨트롤러이다.이부분들을 분리 할 거

*

home.ctrl.js파일 만들기 - 컨트롤러 부분들을 home 과 login 으로 선언 - index.js에서 사용할 수 있도록

module.exports{ } 로 내보내기.

( 오브젝트{key:value}에서 key 하나만 입력해주면 자체적으로 key와 같은 value값이 들어간다.)   

 

*내보냈으니 이제 받아와야함

const ctrl = require("./home.ctrl"입력
 
router.get("/", ctrl.home);
router.get("/login", ctrl.login);

으로 수정

 

 

 

 

 

 

정리하자면 /에 접속하면-ctrl( ./home.ctrl 로 선언된)의 home객체에 접근하게됨, 이떄 모듈 밖으로 exports 해줘야함

'node.js > 우리밋의 node.js' 카테고리의 다른 글

#8. package.json  (0) 2022.03.26
#7. app.listen()모듈화  (0) 2022.03.26
#5.라우팅 분리  (0) 2022.03.26
#4.모듈화(로그인 view 최적화, MVC의 view 분리하기)  (0) 2022.03.26
#3.로그인 화면 만들기  (0) 2022.03.25
댓글

#5.라우팅 분리

2022. 3. 26.

전시간에는 뷰는 뷰끼리 묶어 정리해줬음,

이번에는 주소와 같은 라우터는 라우터끼리 묶는 라우팅 분리를 통해 더 간결하게 만들거임.

*아래와 같이 폴더,파일 만들고, 라우터들을 index.js파일에 넣는다.

*그리고 index.js파일에

line1[여기에도 express 쓰겠다.],

line2[app 대신에 router를 정의해주고 router를 사용하려면 express.Router()로 불러와 줘야함] 를

추가하고 app대신에 router로 수정

이렇게 하면 index.js 에서는 동작이 되는데 app.js와 연결이 안되있음.

*내보내기와 받아오기

index.js에서 module.exports = router; [라우터를 사용할 수있도록 외부로 내보내기] 를 추가하고

 

사진과 같이 코드 추가하여 받아오면됨

[ /경로에 들어오면, home으로 보내줄거 ]

[require("./routes/home) 하면 home안에 js파일을 불러옴]

 

(use 는 미들 웨어를 등록해주는 메서드. 나중에 더 알아보자)

(해석하기에는 line9 다음 line8 해석하기가 편해 line8,9위치를 서로 바꿔 썻더니 오류남)

여기까지 하면 라우팅 분리 끝.

잘 작동한다.

 

 

+@로 포트가 3000번으로 바로 명시되어있는데 이와 같은 표현보다 변수로 담아두는게 더 좋은 습관이라 하셨다.

app.js에서

const PORT = 3000; 추가하고
app.listen(PORT, () => {  로 수정

 

댓글

#4.모듈화(로그인 view 최적화, MVC의 view 분리하기)

2022. 3. 26.

전편에 말한것처럼 유지,보수가 힘들기 때문에 모듈화할거임

MVC패턴을 준수하여 (디자인 패턴에는 MVC,MVP,MVVM 이 있다. 나중에 더 알아보자)
로그인 뷰/라우팅/컨트롤러/ app.listen() 까지 총 4번의 모듈화를 통해 최적화할거.

 

 

*이제 필요없는 index.html을 삭제하고, 아래와같이 폴더,파일을 만들고 코드를 작성한다

 

app.set("views","./views"); [views를 세팅할건데, 필요한 파일이 저장될 곳은 ./views 폴더이다.]
app.set("view engine", "ejs"[views폴더안에 생성된 html 코드들을 ejs 라는 view engine으로 해석하겠다.] 
ejs는 html과 거의 비슷
 

*분리된 파일에 코드 넣고 res.render("경로") 로 연결해준다

012

 

res.render("home/index")   [괄호 안은 불러올 파일의 경로인데,
이미
app.set("views","./views"); 에서 views폴더에 설정했으니 views는 쓸 필요x]

*그리고 node app.js 로 서버를 실행하면

그렇다, ejs를 설치해야한다

터미널에 npm install ejs -s  입력후 다시실행하면 잘 작동된다.

 

이렇게만 해도 보기 쉬워졌는데

라우팅 분리라는것을 통해 훨씬 더 간결하게 만들 수 있다.

다음 시간엔 라우팅 분리를 진행함.

'node.js > 우리밋의 node.js' 카테고리의 다른 글

#6.컨트롤러 분리하기  (0) 2022.03.26
#5.라우팅 분리  (0) 2022.03.26
#3.로그인 화면 만들기  (0) 2022.03.25
#2.express로 서버 띄워보기  (0) 2022.03.25
#1.개발 환경 세팅  (0) 2022.03.25
댓글

#3.로그인 화면 만들기

2022. 3. 25.

이제 로그인 화면 만들거임

*index.html 파일 하나 새로 만들고 코드창에 ! 쓰고 엔터누르면 아래와 같은 기본 서식나옴

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
   
</body>
</html>
 
 
이거를 복사해서 app.js파일로 가 다음과 같이 작성함
※주의※: 큰따옴표,작은 따옴표가 아닌 ` ` (백틱)으로 묶기
 
const express = require("express")
const app = express();

app.get("/", (req, res) => {
    res.send(`
   
    <!DOCTYPE html>
    <html lang="ko">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <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 http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
    </head>
    <body>
        <input type="text" placeholder="아이디"><br>
        <input type="text" placeholder="비밀번호"><br>
        <button>로그인</button>
    </body>
    </html>

        `)
})

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

/경로에는 "메인페이지입니다"를,

/login 경로에는 input태그와 버튼을 만듦.

 

코드입력-저장-node app.js로 실행하면 아래와 같은 페이지 뜸

잼밌따!

사실 이렇게 코딩을 짜면 유지,보수하기에 너무 힘듦.

그래서 다음강의는 모듈화를 통해 리팩터링하는것을 다룸

'node.js > 우리밋의 node.js' 카테고리의 다른 글

#5.라우팅 분리  (0) 2022.03.26
#4.모듈화(로그인 view 최적화, MVC의 view 분리하기)  (0) 2022.03.26
#2.express로 서버 띄워보기  (0) 2022.03.25
#1.개발 환경 세팅  (0) 2022.03.25
백엔드 맛보기  (0) 2022.03.25
댓글

#2.express로 서버 띄워보기

2022. 3. 25.

express라는 웹 프레임워크를 사용해야 서버만들기 매우 편안. express 먼저 설치하자

 

*express 설치:터미널에서 npm install express - s  입력

app.js라는 파일 하나 만들고

*코드입력

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

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

*터미널에서:node app.js 입력하여 실행후 브라우저 주소창에 localhost:3000 입장- "Cannot GET/"문구가 뜨면 성공.

get/경로를 이제 만들자.

 

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

app.get("/", (req, res) => {
    res.send("여기는 메인 페이지입니다")
})
app.listen(3000, () => {
    console.log("서버 가동");
});

서버끄고(ctrl + c) 저장후 다시 node app.js 로 서버 실행 - localhost:3000 잘 작동함

*위처럼 /login도 하나 더 만들기

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

app.get("/", (req, res) => {
    res.send("여기는 메인 페이지입니다")
})

app.get("/login", (req, res) => {
    res.send("여기는 로그인 페이지입니다")
})

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

 

localhost:3000/login 들어가서 잘 작동되는지 확인

 

 

 

 

 

 

 

 

 

 

 

 

 

 

굿 b

 

 

express가 아닌 http로 서버 띄우기는 https://www.youtube.com/watch?v=7gF09WFGK4I 를 참고하자 

http로 서버 한번 띄워보니, express가 왜 소중한지 알게 됨

'node.js > 우리밋의 node.js' 카테고리의 다른 글

#5.라우팅 분리  (0) 2022.03.26
#4.모듈화(로그인 view 최적화, MVC의 view 분리하기)  (0) 2022.03.26
#3.로그인 화면 만들기  (0) 2022.03.25
#1.개발 환경 세팅  (0) 2022.03.25
백엔드 맛보기  (0) 2022.03.25
댓글

#1.개발 환경 세팅

2022. 3. 25.

*설치

1.VS Code 설치
https://code.visualstudio.com/

 

Visual Studio Code - Code Editing. Redefined

Visual Studio Code is a code editor redefined and optimized for building and debugging modern web and cloud applications.  Visual Studio Code is free and available on your favorite platform - Linux, macOS, and Windows.

code.visualstudio.com

2.node설치 (LTS 버전은 검증버전으로 node에서 최신버전 보다 권장함)

https://nodejs.org/ko/ 

 

Node.js

Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.

nodejs.org

3.git과 git bash설치

https://git-scm.com/ 

 

Git

 

git-scm.com

*제대로 설치 되었는지 확인 방법

git bash를 키고

1.node (나오는건 crtl+c 두번 누르기)or node --version 입력 

2.npm 입력

2.git or git --version 입력

 

*리눅스 기반 터미널 사용을 권장 ex)git bash

'node.js > 우리밋의 node.js' 카테고리의 다른 글

#5.라우팅 분리  (0) 2022.03.26
#4.모듈화(로그인 view 최적화, MVC의 view 분리하기)  (0) 2022.03.26
#3.로그인 화면 만들기  (0) 2022.03.25
#2.express로 서버 띄워보기  (0) 2022.03.25
백엔드 맛보기  (0) 2022.03.25
댓글

백엔드 맛보기

2022. 3. 25.

코딩 부트캠프인 항해99 7기를 시작하기 전에 할일

1.우리밋님의 Node.js 강좌를 참고하여 crud기능과 회원가입기능을 구현하기.

2.토이프로젝트

 

아자아자 화이팅

댓글