2017-01-01 114 views
0

我的目的的,以獲得當前鏈路上的數據到HTML的基礎,所以我試着寫一些: 我app.js:我需要幫助解決一下把手幫手的NodeJS

Handlebars.registerHelper('if_eq', function(a, b, opts){       
    if(a == b) 
    return opts.fn(this); 
    else 
    return opts.inverse(this); 
}); 

Handlebars.registerHelper('cur', function(req, res) { 
    var s = ''; 
    s = req.path; 
    return s.slice(1); 
}); 

和HBS:

{{#if_eq url cur}} 
    {{this.title}} 
{{/if_eq}} 

但它不起作用。我試圖改變像{{cur}}或'cur'。有些東西缺少我不知道或沒有辦法將一個操作的多處理助手結合起來。感謝幫助 。

回答

0

它看起來像你可能會混淆車把助手與快車路線。幫助者不會得到reqres參數傳遞給他們。嘗試在Express路線中創建cur變量,當reqres可用時,然後將其傳遞給車把模板。

const path = require('path'); 
const fs = require('fs'); 
const Handlebars = require('handlebars'); 
const express = require('express'); 
const app = new express(); 

// Define your helper here 

const source = fs.readFileSync(path.join(__dirname, 'page.hbs'), {encoding: 'utf8'}); 
const template = Handlebars.compile(source); 

app.get('/', function(req, res) { 
    const content = template({ 
     cur: req.path.slice(1), 
     url: 'http://example.com/some/url' 
    }); 
    res.send(template(content)); 
}); 

app.listen(3000); 

然後,您可以在車把模板中使用cur作爲普通變量。