inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

React로 NodeBird SNS 만들기

6.15 리트윗API만들기에서 내주신 과제 (해당하는 포스트가 있는지 여부를 미들웨어로 만들기)

해결된 질문

123

정중한 전어

작성한 질문수 18

0

안녕하세요!

6.15 리트윗 API 만들기에서 백엔드 라우터 post.js에서 중복되어 나오는

const post = await db.Post.findOne({where:{id:req.params.id}});
if(!post){
return res.status(404).send('존재하지 않는 포스트입니다.');
}

해당 코드를 미들웨어로 만들어 연결해보라는 숙제를 내주셔서 해보았습니다!

제대로 동작은 되는데 제가 한 방식이 옳은 방식인지 모르겠어서 체크해주셨으면 하는 마음에 글을 올립니다.

back/routes/middleware.js 에서 새로 작성한 postExists 부분

const db = require('../models');
exports.postExists = async(req, res, next)=>{
try{
const post = await db.Post.findOne({where:{id:req.params.id}});
if(!post){
return res.status(404).send('존재하지 않는 포스트입니다.');
}
req.post = post;
next();
}catch(e){
console.error(e);
return next(e);
}
}

 back/routes/post.js에서 postExists를 불러와 사용하는 부분 (다른 부분도 같은 방식으로 했기 때문에 like 부분만 적겠습니다!)

const {isLoggedIn, postExists} = require('./middleware');
router.post('/:id/like', isLoggedIn, postExists, async(req, res, next)=>{
try{
const post = req.post;
await post.addLiker(req.user.id);
res.json({userId: req.user.id});
}catch(e){
console.error(e);
next(e);
}
});

post 가 넘어가지 않아 req.post로 해당 데이터를 넘겨서 post.js에서 다시 선언한 후 이를 사용하였는데요.

구글 검색결과를 참고하여 저런 방식으로 하였는데, res를 통해 넘기는 것이 아닌 req에 넣어주는 것이 맞는건가요?

조언해주시면 감사하겠습니다!

javascript react

답변 1

1

제로초(조현영)

req에 넣어도 되고 res에 넣어도 되긴 합니다. 그런데 보통 요청과 관련된 데이터는 req에 넣어줍니다. 올바르게 하셨습니다.

next 10 이상에서는 redux dev tool 구동이 안되나요?

0

272

1

세션 갱신 문의 건

0

482

7

배포 진행 후 Highlight updates components render 표시

0

445

1

똑같은 기능을 하는 테이블

0

447

4

관계형

0

312

2

프론트 서버를 이용하지 않는경우

1

299

3

인피니트 스크롤링 사용시 오류

0

278

0

계속 이런에러가 떠서 해결하기는 했는데 어떤 의미인지 모르겠습니다.

0

433

2

req.user가 언제 생성되나요??

0

330

2

Cannot read property 'id' of null 에러

0

333

1

리트윗한 게시글 불러오는 sequelize

0

252

1

result.data에서 images인 이유

0

281

2

takeLatest에 대한 질문입니다.

1

342

2

프론트에서 express를 사용하지 않을때 동적라우팅

0

501

6

getInitialProps가 클라이언트에서 수행되는 이유?

0

258

1

리로드하면 팔로우 언팔로우 값이 초기화 되는 문제입니다.

0

445

2

스타일드 컴포넌트와 className을 통한 스타일 적용의 차이에 대해 궁금합니다

0

585

2

할인 쿠폰 사용이 안되는되요 (848-f9af83f183e3)

0

365

1

nodejs mvc 패턴

0

975

4

사용하고 보니, 람다 구성이 궁금합니다!

0

266

1

제로초님

0

445

1

새로고침 로그인 풀림 문제.

0

247

1

안녕하세요. 강의 너무 감사합니다

0

157

1

제로초님

0

170

1