https://www.youtube.com/watch?v=SBvmnHTQIPY
TimeStamps:
Intro - 00:00
Database Setup - 3:41
Install Dependencies - 6:10
Initial Express Setup - 10:26
Connect Database - 14:00
Morgan Logger - 17:27
Template Engine & Layouts - 18:22
Index Routes & Views - 21:44
Materialize & Font Awesome - 25:54
Set Static Folder - 26:55
Login Layout - 29:13
Login Page Template - 31:55
Start Google Login - 33:57
Passport Intro - 36:46
Passport Config & Sessions - 39:00
User Model - 42:49
Passport Google Strategy - 45:41
Auth Routes - 49:50
Save Google Profile Data - 55:06
Logout - 59:54
Navigation - 1:01:11
Auth Middleware - 1:03:22
Store Sessions In Database - 1:08:36
Story Model - 1:12:27
Dashboard Stories - 1:14:44
Add Story - 1:21:57
Format Date Handlebar Helper - 1:33:35
Public Stories - 1:36:40
Truncate & StripTags Helpers - 1:44:10
Edit Icon Helper - 1:47:04
Edit Story - 1:54:21
Method Override For PUT Requests - 2:02:30
Method Override For DELETE Requests - 2:10:56
Single Story Page - 2:18:46
User Stories - 2:24:36
$ npm init
$ npm i express mongoose connect-mongo express-session express-handlebars dotenv method-override moment morgan passport passport-google-oauth20
express: 라우터 기능 등을 위한 웹 서버 프레임워크
mongoose : 데이터베이스 모델 설계를 위함
connect-mongo : allow me to store my sessions in my database and when we reset the server, we don't get logged out.
express-session : 세션과 쿠키를 위함
express-handlebars : 템플릿 엔진을 위함. 다른걸로는 ejs나 pug등이 있음
dotenv : config 를 위함
method-override : this allow me to make put and delete request from our templates. 디폴트로, get과 post로만 보낼 수 있기 때문에, 이 메소드 오버라이드 모듈로 put과 delete를 사용할 수 있게 한다.
moment : format dates
morgan : for logging. 로그를 위해 설치하는 모듈
passport : authentication
"scripts": {
"start": "cross-env NODE_ENV=production node app",
"dev": "cross-env NODE_ENV=development nodemon app"
},