inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지

9장 nodebird관련질문

368

강수윤

작성한 질문수 1

0

안녕하세요 강사님 열심히 수업을 듣고 있는 학생입니다!

다름이 아니라 9장에서 nodebird 프로젝트를 하고 있는데 스스로 해보기 부분에서 막혀서 질문드립니다!

좋아요, 좋아요 취소 부분입니다!

유튜브에는 퍼그로 되있는 부분이 있습니다!

-const like = twit && twit.Liker.map(l => l.id).includes(req.user.id)

if user && !like

   button 좋아요

else if user

   button 좋아요 취소

라고 되어있는 부분인데 이부분을 도저히 어떻게 넌적스로 바꿔야할지 몰라서 질문드렸습니다!

Sequelize mongodb mysql nodejs

답변 6

0

제로초(조현영)

res.render('넌적스명', { twit: twit }) 한 다음에 넌적스에서 twit을 그대로 쓰시면 되는데 너무 어렵게 생각하시는 것 아닌가요?

퍼그로 되어있을 때도 그냥 twit 썼던 것처럼, 서버쪽은 건들 게 없고 넌적스쪽에서만 twit 그대로 써서 하시면 됩니다. 화살표 함수가 안 되면 function으로 바꾸시면 되고요.

0

강수윤

그럼 어떤식으로 넌적스에 변수를 넘겨 주어야 하나요?

res.locals.likesList = req.user ? Post.Likes.map(l => l.id) : [];

이런식으로 넘겨주려고 해도 map은 없는 메서드라는 에러가 뜹니다.

이런 상황에서 req.user ? Post.Likes.map(l => l.id) : [];

이부분을 도저히 어떻게 짜야할지 모르겠습니다

시퀄라이즈 부분에서 참조로 만든 테이블을 어떻게 가져오나요??

0

제로초(조현영)

req.twit이 뭔가요? 넌적스에 넘기는 변수를 의미하시는 거면 req는 빼셔도 됩니다. req.user는 존재하지만 그 외의 다른 것은 존재하지 않습니다.

0

강수윤

귀찮게 해드려서 죄송합니다! ㅠㅠ

넌적스 코드를 이렇게 바꾸고

{% if user and not (req.twits and likesList.include(req.user.id)) %}
                        <button class="like">좋아요</button>
                    {% elif user and (req.twits and likesList.include(req.user.id)) %}
                        <button class="unlike">좋아요 취소</button>
                   {% endif %}

page.js에

router.use((reqresnext=> {
    // res.locals.like = req.user && req.twit && twit.Liker.map(l => l.id).include(req.user.id);
    res.locals.user = req.user;
    res.locals.followerCount = req.user ? req.user.Followers.length : 0;
    res.locals.followingCount = req.user ? req.user.Followings.length : 0;
    res.locals.followerIdList = req.user ? req.user.Followings.map(f => f.id) : [];
    res.locals.likesList = req.user ? req.twit.Likers.map(l => l.id) : [];
    next();

});

이렇게 코드를 추가했습니다

이때

    res.locals.likesList = req.user ? req.twit.Liker.map(l => l.id) : [];

이 부분에서 Liker나 Likers등 어떤걸 넣어도

Cannot read property 'Liker' of undefined

라는 에러가 뜹니다 ㅠㅠ 이부분을 어떻게 받아와야 할까요??

0

강수윤

바꾸면

{% if user and not req.user and req.twit and twit.Liker.map(l => l.id).include(req.user.id) %}
                        <button class="like">좋아요</button>
                    {% elif user and req.user and req.twit and twit.Liker.map(l => l.id).include(req.user.id) %}
                        <button class="unlike">좋아요 취소</button>
                   {% endif %}

이런식으로 되는데

넌적스에서는 화살표 함수가 먹지 않아서

어떻게 바꿔야 할지 도저히 모르겠습니다 ㅠㅠ

0

제로초(조현영)

https://github.com/ZeroCho/nodejs-book/blob/master/ch9/9.5/nodebird/views/main.html

위 코드에서 if문 부분을 응용해서 하시면 됩니다.

리눅스 노드 설치시 패키지

0

159

0

socket.js 에서 referer로부터 roomId를 가져올 때

0

905

3

스트리밍 방식으로 대용량 파일 업로드 & 다운로드 관련 질문

0

2281

2

a[title] 질문드립니다

0

375

1

리뉴얼 강의 및 공부 방법

0

581

1

jwt decode

0

1128

1

node.js 교과서 3판 질문드립니다

0

391

1

passport와 jwt

0

432

1

리뉴얼 강의

0

418

2

혹시 Node.js 교과서 3판 이북은 언제 나오나요?

0

353

1

몽고디비 사용자도 MYSQL부분을 들어야 하나요???

0

481

1

sql 쿼리 로그는 어떤 모듈이 작성하나요?

0

505

2

nunjucks res.render('error'); 작동을 안합니다.

0

511

1

질문있습니다.

0

346

1

multer 한글 파일 업로드시 파일명이 깨져요.

1

3535

1

수업자료는 어디있나요?

0

366

1

질문 있습니디

0

235

1

multer 사용시 file 외 name값은 못받나용?

0

416

1

코드 중복 부분 질문드립니다.

0

298

1

api 만드는 이유 질문드립니다.

0

286

1

Strategy의 done에 대해 질문드립니다.

0

364

1

안녕하세요 fs 권한 관련 질문드립니다

0

448

1

시퀄라이즈 연결질문...

0

495

2

res.setHeader vs res.cookie

0

1786

3