9.5.1 스스로 해보기 관련
415
작성한 질문수 9
안녕하세요
9.5.1 스스로 해보기에 추가 학습으로
좋아요/좋아요 취소 버튼을 만들었습니다.
이제
각 게시물에 좋아요 누른 사람의 목록을 input 창에 나열시키고 싶습니다.
전제조건 : 로그인과 관계없이 누구나 그 목록을 볼 수 있습니다.
models/post.js
db.Post.belongsToMany(db.User, { as: "User2", through: "Like" });models/user.js
db.User.belongsToMany(db.Post, { as: "Post2", through: "Like" });
}routes/page.js
router.get("/", async (req, res, next) => {
try {
const posts = await Post.findAll({
include: [
{
model: User,
attributes: ["id", "nick"],
},
{
model: User,
attributes: ["nick"],
as: "User2",
},
],
order: [["createdAt", "DESC"]],
});
res.render("main", {
title: "NodeBird",
twits: posts,
});
} catch (err) {
console.error(err);
next(err);
}
});추가한 코드는 아래와 같습니다.
{
model: User,
attributes: ["nick"],
as: "User2",
},views/main.html
{% for twit in twits %}
<div class="twit">
<input type="hidden" value="{{twit.User.id}}" class="twit-user-id" />
<input type="hidden" value="{{twit.id}}" class="twit-id" />
<div class="twit-author">{{twit.User.nick}}</div>
{% if not followingIdList.includes(twit.User.id) and twit.User.id
!==user.id %}
<button class="twit-follow">팔로우하기</button>
{% endif %}
<!-- '수정', '삭제' 버튼 -->
{% if user.id === twit.User.id %}
<button class="twit-delete">삭제</button>
<button class="twit-update">수정</button>
{% endif %}
<!-- 게시글, 이미지 -->
<br />
<br />
<div class="twit-content">{{twit.content}}</div>
{% if twit.img %}
<br />
<div class="twit-img"><img src="{{twit.img}}" alt="섬네일" /></div>
{% endif %}
<br />
{% if not likeIdList.includes(twit.id) %}
<!-- 좋아요 안 누른 상태 -->
<button class="twit-like" style="cursor: pointer">
<img src="../notlike.png" class="twit-notlike-icon" />
</button>
{% else %}
<!-- 좋아요 이미 누른 상태 (취소하고 싶다면) -->
<button class="twit-notlike" style="cursor: pointer">
<img src="../like.png" class="twit-like-icon" />
</button>
{% endif %}
<!-- 좋아요를 누른 사람들 목록 -->
<input type="text" value="{{twit.User2.nick}}" />
</div>
{% endfor %}추가한 코드는 아래와 같습니다
<input type="text" value="{{twit.User2.nick}}" />
[결과]
웹에서 input 상자가 빈 상자로 나옵니다.
개발자 도구 Elements에는 다음과 같이 나옵니다

어디부터 잘못된 걸까요..?
답변 1
0
일단 console.log(posts) 해보세요. 좋아요 누른 사람은 여러명일 수 있으므로 user2는 배열일 겁니다. 그렇다면 넌적스에서도 for문을 사용하셔야 하고요.
리눅스 노드 설치시 패키지
0
172
0
socket.js 에서 referer로부터 roomId를 가져올 때
0
931
3
스트리밍 방식으로 대용량 파일 업로드 & 다운로드 관련 질문
0
2297
2
a[title] 질문드립니다
0
387
1
리뉴얼 강의 및 공부 방법
0
590
1
jwt decode
0
1138
1
node.js 교과서 3판 질문드립니다
0
397
1
passport와 jwt
0
439
1
리뉴얼 강의
0
428
2
혹시 Node.js 교과서 3판 이북은 언제 나오나요?
0
359
1
몽고디비 사용자도 MYSQL부분을 들어야 하나요???
0
490
1
sql 쿼리 로그는 어떤 모듈이 작성하나요?
0
511
2
nunjucks res.render('error'); 작동을 안합니다.
0
520
1
질문있습니다.
0
348
1
multer 한글 파일 업로드시 파일명이 깨져요.
1
3545
1
수업자료는 어디있나요?
0
374
1
질문 있습니디
0
245
1
multer 사용시 file 외 name값은 못받나용?
0
430
1
코드 중복 부분 질문드립니다.
0
303
1
api 만드는 이유 질문드립니다.
0
293
1
Strategy의 done에 대해 질문드립니다.
0
374
1
안녕하세요 fs 권한 관련 질문드립니다
0
456
1
시퀄라이즈 연결질문...
0
511
2
res.setHeader vs res.cookie
0
1799
3





