
express 설치package.json 파일 생성 - npm initexpress 설치 - npm i expressjs 파일에 express를 요청하고 서버를 실행시킨다.
req.params특정 데이터를 가져오기 위해ex)"/users/:userId" 이 경로에서 /:userId 여기가 req.params로 인식하는 부분이다.:userId는 1이면 User 객체에서 index 1번째 user를 불러올 수 있는 코드이다. 만약, para
res.send와 res.json의 차이점 res.send와 res.json은 기능상 거의 동일하다.

res.end()responst가 있고 일단 데이터를 수집하거나 호출자에게 제공하고 싶은 다른 작업을 수행하면 마지막 단계로 세션을 종료할 때res.end()로 종료해야 할 때데이터를 제공하지 않고 응답을 종료하면 res.end()를 사용할 수 있다. 이는 404 페이

middleware(미들웨어)란?애플리케이션의 요청-응답 주기에서 요청 객체(req), 응답 객체(res), next() 미들웨어 함수에 접근할 수 있는 기능이다. next 미들웨어 기능은 일반적으로 next라는 변수로 표시한다.미들웨어 수행 하는 것들모든 코드를 실행
express.jsonExpress에 내장된 미들웨어 기능이다. JSON 페이로드로 들어오는 요청을 구문 분석하고 body-parser를 기반으로한다.req.body를 사용할 때, 사용자 제어 입력을 기반으로 하므로 이 개체의 모든 속성과 값은 신뢰할 수 없으므로 신뢰

MVC(Model View Controller) Pattern이란?소스 코드가 길어지면 복잡해지고 관리도 힘들어지기 때문에 사용하는 소스 코드를 정리하는 패턴관련 프로그램 로직을 상호 연결된 3개의 요소로 나누는 사용자 인터페이스를 개발하는 데 일반적으로 사용되는 소프

Router란?코드의 가독성을 높이기 위해 파일을 정리하기 위한 것클라이언트의 요청 경로에 따라 이 요청을 처리할 수 있는 곳으로 기능을 전달해주는 것ex) 만약 이렇게 경로를 설정하게 되면 코드의 가독성을 잃어버린다. 가독성을 높이기 위해서는 라우터를 설정해줘야한다.

파일 전송(res.sendFile)response에 해당 파일을 전송하는 명령어이다.파일 전송(res.sendFile) 사용법정적인 파일을 보관할 폴더를 생성한다.(public폴더)public 폴더 안에 images라는 폴더를 생성한다.images 폴더 안에 이미지를

express.static()란?이미지, CSS 파일 및 JavaScript 파일과 같은 정적 파일을 제공하려고 할 때 사용하는 미들웨어 함수app.use(express.static('public'));

MVP Pattern을 사용하면 동적으로 데이터를 보여줘야되는데 정적 파일을 사용하면 힘이 들 수 있다. 그럴 경우 Template Engine를 사용하자.Template Engine란?지정된 템플릿 양식과 데이터가 합쳐져 HTML 문서를 출력하는 소프트웨어웹 템플릿

Template Layout 생성하기header, footer는 동일하게 하고, body부분만 바꾸려고 한다.layout.hbs 생성을 한다. 2\. layout.hbs 필요한 내용들을 적어준다.서버를 실행하는 파일에 res.render을 이용한다. index.hb

JWT(JSON Web Token)란?당사자간에 정보를 JSON 개체로 안전하게 전송하기 위한 컴팩트하고 독립적인 방식을 정의하는 개방형 표준(RFC 7519)이다. 이 정보는 디지털 서명이되어 있으므로 확인하고 신뢰할 수 있다.정보를 안전하게 전할 때 혹은 유저의 권

Token이 필요한 이유HTTP는 Stateless 프로토콜이다. 서버에서 클라이언트가 누군지 확인할 수 없다.

authMiddleware를 생성해서 토큰을 갖고 있어야 middleware를 지나갈 수 있게 하는 방법authMiddleware 함수를 만들어준다.토큰은 req.headers.authorization에 담기게 되는데 변수에 담아둔다.authHeader 변수를 보면 이

accessToken의 문제점accessToken을 새로 생성해도 전에 생성했던 accessToken으로 이용이 가능해진다. 이렇게 되면 하나의 토큰을 탈취하면 탈취한 토큰으로 계속 요청이 가능해진다.유효시간을 줄이면 되지만, 시간을 짧게하면 자주 토큰을 생성해야 한

passport 모듈 (미들웨어)여러가지 인증 처리 구현을 쉽게 도와준다(카카오, 구글, 페이스북, JWT)필요한 모듈 설치npm i dotenv express nodemon body-parser cookie-parser cors mongoose passport pas
CORS(Cross Origin Resource Sharing)란?도메인 및 포트가 다른 서버로 클라이언트가 요청했을 때 브라우저가 보안상의 이유로 API를 차단하는 문제이다. 로컬 서버에서 다른 서버로 호출할 때 발생한다.해결방법npm i cors미들웨어 cors를

express.js에서 사용하는 미들웨어app.use(express.urlencoded({ extended: false })); URL-encoded 데이터는 HTML 폼에서 전송되는 기본적인 데이터 형식 중 하나이다.Express 애플리케이션에서 클라이언트로부터 오는
Express.js란? Node.js의 API를 단순화하고 유용한 기능들은 더 추가 시켜 Node.js를 더 편리하고 유용하게 사용할 수 있게 해주는 프레임워크 서버와 경로를 관리하는 데 도움이 되는 node.js 상단에 구축된 레이어이다.
모듈화 하고 싶었는데, router이용해서 하면 쉬울 거 같다..너무 신박하다 생각한다.routes 폴더 생성routes 폴서 안에 js 파일 생성안에서 express.Router를 변수인 router에 담아둔다.module.exports를 이용해 router를 밖으로

ejs를 이용해서 회원가입/로그인 페이지를 만드는 법npm i ejs 템플릿 엔진 ejs 설치views 폴더를 생성한다.ejs를 사용한다고 명시를 해주고, 경로를 지정해준다.form을 통해 로그인이 성공하면 /login 경로에 POST 메소드를 이용해서 button을

passport에서 인증이 된 사람이 사용 가능하도록 또는 안 된 사람만 사용 가능하도록 미들웨어를 제공한다.passport 인증 미들웨어 사용법middlewares 폴더를 생성하고 auth.js 파일을 생성한다.
passport 모듈을 이용한 로그아웃ejs 파일에 logout 경로로 post요청을 보낸다.logout 경로에 들어오면 req.logOut 함수를 이용해 세션에서 cookie-session 토큰을 없는 토큰으로 만들어준다.
bcrypt란?평문을 암호문으로 바꾸는 과정. 암호화 알고리즘을 통해 원래 정보를 변조시켜 복호화할 수 없다면 정보를 알 수 없게 만드는 라이브러리

google 소셜 로그인을 하기 위해서는 google cloud에서 key를 발급받아야한다.

Google OAuth login 로직 구현

nodemailer란?이메일 기능이다. express에서 제공해주는 라이브러리외 AWS SES 서비스, Mailgum 등 많은 서비스가 더 있다.nodemailer 사용법npm i nodemailernodemailer 라이브러리를 설치한다.메일을 전송할 때 보여줄 템플

nodemailer를 사용하기 위해 google 앱 비밀번호를 생성하고 그것을 이용해야 된다.https://myaccount.google.com/security이동한다.보안에 들어와서 검색바에 앱비밀번호를 검색하고 클릭한다.앱 비밀번호의 이름을 적고 생성을 하
Kakao OAuth Key 생성kakao 개발자 사이트 이동카카오 개발자 사이트내 애플리케이션을 누르고 애플리케이션 추가애플리케이션 정보를 작성탐색 바에서 플랫폼 클릭자신이 사용할 플랫폼 등록탐색 바에서 카카오 로그인 클릭앱 활성화와 Redirect URI 작성탐색
Kakao OAuth 구현 로직

controller 생성controller 폴더를 생성하고 알맞는 파일을 생성한다.schema폴더에서 사용할 model을 불러오고 controller.js 파일에 사용할 함수를 작성한다.routes 폴더에 router 폴더를 만든다.router.js 폴더에 내용을 작성
에러처리를 할 때 서버가 다운이 되면 안 된다.에러 처리기 에러처리기는 4개의 인자가 들어간다. 첫 번째 미들웨어에서 발생한 에러 메시지를 이곳에서 처리해준다.하지만 비동기 요청으로 인한 에러를 이렇게 처리하면 에러 처리기에서 에러 메시지를 받지 못하기 때문에 서버가
const router = express.Router({mergeParams: true});

FileReader API란?이미지 파일을 동적으로 올릴 수 있게 해준다.// HTML파일// HTML 파일 밑 script이미지 파일 id에 함수를 실행해준다.함수는 this를 읽어온다. this는 input 태그에 있는 것들을 읽어오고, new FileReader(

cookie-session / express-session 차이점cookie-session: 클라이언트에서 세션을 보관한다.서버를 종료해도 클라이언트에 세션이 존재하기 때문에 로그아웃이 되지 않는다.express-session: 데이터베이스에서 보관하며 클라이언트에서는

필요한 모듈 설치npm i pg typeorm reflect-metadata --savepg: PostgreSQL 데이터베이스와 인터페이스하기 위한 모듈(데이터베이스 드라이버)reflect-metadata: 데코레이터를 사용하기 위해서 필요한 모듈ex) @Entity(
typeorm에 필요한 모듈 설치npm inittsconfig.json 생성npx tsc --initnpm i morgan nodemon expressnpm i typescript ts-node @types/node @types/express @types/morgant
typeorm을 이용해 CRUDAppDataSource: 데이터베이스getRepository: 데이터베이스의 엔티티(User) mongoose의 model과 같다.createreadupdatedelete