나의 개발일지(김지헌)
항해 99 25일차 10월 13일 본문
오늘은 숙련주차 시험이 있었다.
1번 . 모든 API들이 연결되지 않는다
router.route() 함수는 선택적인 미들웨어로 HTTP 동사를 처리하는데 사용할 수 있는
단일 경로의 인스턴스를 반환합니다.
router.route() 함수를 사용하여 중복 경로 이름 지정 및 입력 오류를 방지할 수도 있습니다
즉 라우터를 넣어주지 않으면 미들웨어의 역할을 할 수가 없고
클라이언트의 요청을 받을수 없어서 API들이 연결이 되지 않습니다.
router.get('/',async (req, res) => {}) api앞에 ' / ' 경로를 넣어줬습니다
index.js에 라우터를 만들어줘서 API들을 연결 시켜줍니다
const commentsRouter = require('./comments')
const postsRouter = require('./posts')
const loginRouter = require('./login')
const signupRouter = require('./signup')
const likesRouter = require('./likes')
2번.사용자 인증 미들웨어(AuthMiddleware) 에서 Cookie 데이터가 정상적으로 수신되지 않는다.
const express = require('express');
const app = express();
const cookieParser = require('cookie-parser');
app.use(cookieParser());
app.js 파일에서 cookiePaser는 정상적으로 require 되었는데 쿠키파서를 사용 할 수 있게하는
미들웨어를 넣지 않아서 쿠키라는 데이터가 정상적으로 수신되지 않았다.
app.use(cookieParser())
3.사용자 인증 미들웨어(AuthMiddleware) 의 jwt 인증 에러가 확인된다.
로그인 할때 토큰을 만들어서 쿠키를 생성 하는데 Secret Key를 같이 넣어서 만들게 됩니다.
const token = jwt.sign({ userId: user.userId },"Secret Key");
그리고 미들웨어 에서 쿠키를 가지고 검증을 하는데
쿠키를 만들어서 보낼때의 Secret Key와 일치 해야지만 인증을 성공 할 수 있습니다.
const { userId } = jwt.verify(tokenValue, process.env.SECRET_KEY);
.env에 있는
SECRET_KEY=hanghae_node_middle_project_secret_key 이 값을
SECRET_KEY=Secret Key 이걸로 변경했습니다.
4. POST Method로 API를 호출할 때, Request 데이터가 정상적으로 수신되지 않는다
app.use(express.json()); 이 있어야 POST 메소드를 호출 하면 req에 json형식으로 받을 수 있다
하지 않으면 undefined가 뜬다
'항해 99' 카테고리의 다른 글
항해 99 27일차 10/15일 (0) | 2022.10.16 |
---|---|
항해 99 26일차 10월 14일 (0) | 2022.10.14 |
항해 99 24일차 10월 12일 (0) | 2022.10.13 |
항해 99 22일차 10/10 (0) | 2022.10.11 |
항해 99 21일차 10/09 (0) | 2022.10.09 |