일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- R행렬
- RSTUDIO 단축키 #단축키
- R스튜디오 기초 #빅데이터 #데이터프레임 #R평균함수
- node.js #mvc #최적화
- R배열 #2차원 #3차원 #행렬추가 #행렬조회 #배열조회
- R데이터분석 #R스튜디오 # 코딩 #빅데이터 #AI #인공지능
- elice #엘리스코딩 #체셔의 퀴즈 #알고리즘 #기초 #초급 #조건문 #객체지향 #참거짓명제
- 백엔드 #서버띄우기 #express #프레임워크 #http #node.js #javascript #server
- r스튜디오설치 #r스튜디오환경설정 #r데이터분석
- 벡터 #숫자형벡터 #문자형벡터 #논리형벡터 #범주형자료
- 백엔드 #개발자 #풀스택 #백엔드개발자 #풀스택개발자 #직무 #직무탐구 #방향성 #목표 #자격요건 #주요업무 #화이팅 #2023
- 리스트 #데이터프레임
- HTML
- Today
- Total
7l log
[Node.js] 백엔드 맛보기 | 5강-10강 Note 본문
- 5강 로그인 화면 만들기 (하드코딩)
- 6강 로그인 뷰(view) 최적화 | MVC의 V(view) 분리하기
- 7강 라우팅 분리
- 8강 MVC의 C(controller)분리하기
- 9강 app.listen()모듈화
- 10강 packsge.json, package-lock.json, node_modules, npm start
로그인화면 만들기 (하드코딩부터 해보기)


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, function () {
console.log("서버 가동");
});
자바스크립트에서 ` (tab위에 키, 벡틱이라고 읽음)을 사용하면 편리하게 여러줄을 한꺼번에 문자열로 인식시킬 수 있다.
↑ 좋지않은 코드로부터 리팩토링해보기 위하여 위와 같은 유지보수가 어려운 코드를 실행해봄
로그인 뷰(view) 최적화 시키기 | MVC의 V분리하기
[Node.js] 백엔드 맛보기 | 로그인 뷰(view) 최적화 | MVC의 V(view) 분리하기 - YouTube
- views 라는 폴더 밑에 home이라는 폴더 만들기.
- index.ejs 파일과 login.ejs파일을 만들어서 홈화면과 로그인화면 분리
- 안에는 각각 하드코딩때 썼던 html부분을 복사하여 넣기.
위와 같이 view를 나눠 놓고
- app.js파일로 돌아와서
- 화면 VIEW단을 처리해줄 수 있는 뷰 엔진을 셋팅하기 : 앱 세팅
- render메소드로 각각의 ejs파일 경로를 문자열로 연결해줌
- 터미널에서 npm install ejs -s 로 ejs모듈 설치하고 node app.js > 로컬호스트 3000서버 들어가보면 정상 작동됨
라우팅 분리
[Node.js] 백엔드 맛보기 | 라우팅 분리 - YouTube
드래그 한 (라우팅)부분을 보기 쉽도록 다른 파일로 분리하여 간단히 연결하는 방법
- routing할 부분은 routes 라는 폴더의 이름으로 넣어주는 것이 일반적이며 관례임
자바스크립트 파일 맨 상단에다가 "user strict";라고 명시 해주면 좋음
routes 폴더-home폴더 안에 index.js 파일을 만든다.
아래와 같이 각각 파일에 코딩


app.use("/", home); // use -> 미들 웨어를 등록해주는 메서드.
MVC의 C(controller)분리하기
MVC의 C(controller)분리하기
index.js 파일에 드래그한 저 부분을 컨트롤러로 빼줄 예정
- routes/home 폴더 밑에 home.ctrl.js라는 파일 만듬
참고로 object에서 키를 하나만 입력해주게 되면,
키와 같은 벨류를 자동으로 저장해준다.{key:key}
{hello:hello
login:login
}; 이런식으로 알아서 된다는 것,
app.listen()모듈화 ㅣ 최적화
[Node.js] 백엔드 맛보기 | app.listen() 모듈화 | 최적화에는 끝이 없다!? - YouTube
app.listen ()모듈화하기 위하여 app.js 파일에 있는 드래그 한 아래 부분을 모듈화 해줄 예정
잘라낸 후 bin 폴더 만든 후 , 서버를 띄워줄 www.js파일을 만든다
드래그 한 부분을 잘라내서, www.js파일에 붙여주고 app을 내보내줌
는 app함수를 ("../app"); 현재 경로의 상위 경로(..으로 접근)에 있는 app.js로 가서 가져오겠다는 뜻
포트도 불러와주기.
모듈화한 app.listen~~파일이 www.js파일에 있으니까 서버를 bin/www.js 에서 실행시켜야 함
따라서 서버를 실행시키기 위한 명령어를 터미널에 node ./bin/www.js입력하여 서버 실행하기
package.json , package-lock.json , node modules , npm start
[Node.js] 백엔드 맛보기 | package.json | package-lock.json | node_modules | npm start - YouTube
- package.json파일 설치
- 서버껐다 켠 후, npm init -y : 패키지 소프트웨어의 설정들을 default값으로 초기화 함
'수업노트' 카테고리의 다른 글
[Node.js] 백엔드 맛보기 | 1강-4강 Note (0) | 2022.12.28 |
---|---|
[IT 교육과정] SW021, 소프트웨어제로투원 (0) | 2022.11.14 |