【发布时间】:2017-08-13 01:43:51
【问题描述】:
CREATE TABLE post_likes (
post_id INT NOT NULL,
user_id INT NOT NULL,
likes BOOLEAN NOT NULL,
FOREIGN KEY (post_id) REFERENCES posts(id),
FOREIGN KEY (user_id) REFERENCES users(id),
PRIMARY KEY (user_id, post_id)
)
+-------+---------+---------+
| likes | post_id | user_id |
+-------+---------+---------+
| 1 | 1 | 1 |
| 1 | 1 | 2 |
| 0 | 2 | 1 |
| 0 | 2 | 2 |
+-------+---------+---------+
我使用 NodeJS 和 EJS 作为模板语言。现在我正在将表 post_likes 传递给我的 EJS。并尝试做一个 for 循环。基本上在表中 1=true or like and 0=false or dislike.所以我有一个柜台,如果它像我做的那样 counter++ 否则 counter--。但它看起来很糟糕。由于某种原因它也不起作用有什么更好的方法来做到这一点。
我尝试了什么 - 我排除了代码中不需要的其他部分。我删除了 ejs 右括号并打开以使其更具可读性。
<% var counter = 0 %>
for(var i = posts.length-1; i >= 0; i--) {
if(posts[i].post_likes.length > 0) {
for(var j = 0; j < posts[i].post_likes.length; j++) {
if(posts[i].post_likes[j].likes == true) {
counter = counter + 1 %>
}
else if(posts[i].post_likes[j].likes == false) {
counter = counter - 1
}
}
}
}
<h1><%= counter %></h1>
【问题讨论】:
标签: javascript mysql node.js database