我刚开始使用node.js,这个问题肯定有一个明显的答案,但我不能把它拉下来。
让我们使用这个方法有一个名为club
的模型:
club.getStaff = function(callback) {
client.sinter('club-staff:'+club.id, callback);
};
到目前为止,我通过回调管理了应用程序流程,但现在我被困在模板中。我如何呈现异步调用?我想迭代staff
并打印出来。
我想我可以在渲染之前调用此方法,实际上渲染它的回调。这感觉有些不对劲。如果不需要调用方法,则浪费资源(因为模板中的if为什么)。此外,对于引入的每个新(异步)变量,渲染包装器都会增长。
答案 0 :(得分:1)
对于大多数模板引擎,您无法从模板中调用异步函数。
相反,您必须从控制器调用异步函数,并在返回时将数据传递给模板。
假设快递:
app.get('/route/', function(req, res) {
club.getStaff(function(data) {
res.render('template', data);
});
});
答案 1 :(得分:0)
在节点中,您可以使用nai作为异步模板。