gpt4 book ai didi

javascript - 如何在 ejs 中包含 promise 值?

转载 作者:行者123 更新时间:2023-11-30 17:05:29 25 4
gpt4 key购买 nike

我正在借助 expressejs 制作一个小型 Node 应用程序。在我的一个 Controller 中,我返回一个对象,该对象具有我希望包含在我的 View 中的 promise 属性。我试图弄清楚执行此操作的最佳方法是什么,因为 ejs 似乎无法处理 promise 的值。我考虑改为在模型中包含 promise 的值,但似乎我过于复杂了需要完成的代码。

如何在 ejs 中轻松呈现 bluebird promise 值?

Controller

compaintsRouter.get('/', function(req, res) 
{
var model = data.complaint.findAndCount({
include: [data.user, {
model: data.comment,
include: [data.user]
}],
limit: 15,
offset: 15 * (req.query.page || 0)
}).then(function(result){
res.render('complaints/list', {model: result.rows});
});
});

ejs 查看模板

<% model.forEach(function(complaint) { %>

<div class="complaint">
... more html here...
<footer>
<span class="vote brand-success">
<% complaint.votesUp().then(function(votes){%>
<%= votes %>
<%}) %>
<span class="glyphicon glyphicon-thumbs-up clickable"></span>
</span>
</footer>
... more html here...
</div>

<% }) %>

promise 的方法:

votesUp: function() {
return this.getFollower().then(function(followers){
var aux = followers
.selectMany(function(f){return f.UserComplaint})
.map(function(v){
return ((v.liked === true) ? 1: 0);
});
aux.push(0);
aux.reduce(function(acc, v){
return acc+v;
});
})
}

最佳答案

似乎答案可能是将业务逻辑大量混合到 View 中。你能不能早点拿到选票,这样你就不用在模板里乱搞了?看起来很乱。 :)

(ps,+1 以抵消反对票)

关于javascript - 如何在 ejs 中包含 promise 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28119740/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com