2015-11-06 65 views
0

我使用Jade渲染模板。它看起來像這樣:在Express中渲染的特殊參數

res.render('template_name', {var1: 'One', var2: 'Two'}) 

但我需要每個渲染添加一個參數,這是該函數的結果。例。我寫

res.render('template_name', {var1: 'One', var2: 'Two'}) 

但它讀起來就像

res.render('template_name', {var1: 'One', var2: 'Two', var3: func()}) 

怎麼辦呢?

回答

1

您必須在所有要訪問的路由之前添加一箇中間件,如下所示:var3

function populateLocals(req, res, next){ 
    res.locals.var3 = function() { 
    return "alalao"; 
    }; 

    next(); 
} 

app.use(populateLocals); 

您可以通過單獨做這些事情,在路線基礎上向當地人添加特定值;

app.get('/', populateLocals, function(req, res, next) { 
    res.render('foo', {a: 1, b: 2}); 
}); 

app.get('/whatever', populateLocals, function(req, res, next) { 
    res.render('foo', {a: 1, b: 2}); 
}); 

而且,看看this other question