Javascript NodeJS/Express/expresshandlebar-全局辅助功能

Javascript NodeJS/Express/expresshandlebar-全局辅助功能,javascript,node.js,express,handlebars.js,handlebarshelper,Javascript,Node.js,Express,Handlebars.js,Handlebarshelper,我可以向你保证,到现在为止,我已经对我的显示器大喊大叫了,并且花了好几个小时才明白这一点。 首先,我不理解像把手这样的模板引擎不能实现简单的比较功能的概念 无论如何。我有一个助手函数,当添加到单独的路由中时,它的效果非常好,您可以在这里看到。不过,我真的很想将其作为全局函数添加到express创建的app.js文件中。我可以向您保证,助手函数的GITHub示例不起作用 任何帮助都将不胜感激 我的index.js文件 /* GET home page. */ router.get('/', fu

我可以向你保证,到现在为止,我已经对我的显示器大喊大叫了,并且花了好几个小时才明白这一点。 首先,我不理解像把手这样的模板引擎不能实现简单的比较功能的概念

无论如何。我有一个助手函数,当添加到单独的路由中时,它的效果非常好,您可以在这里看到。不过,我真的很想将其作为全局函数添加到express创建的app.js文件中。我可以向您保证,助手函数的GITHub示例不起作用

任何帮助都将不胜感激

我的index.js文件

/* GET home page. */
 router.get('/', function(req, res, next) {
 Coupon.find(function(err, docs)
 {

  res.render('main/index', { 

    title: 'Coupon Site new for all', 
    coupons: docs,

    //helpers
     helpers: {
         eq: function (v1, v2) {
             return v1 === v2;
         },
         ne: function (v1, v2) {
             return v1 !== v2;
         },
         lt: function (v1, v2) {
             return v1 < v2;
         },
         gt: function (v1, v2) {
             return v1 > v2;
         },
         lte: function (v1, v2) {
             return v1 <= v2;
         },
         gte: function (v1, v2) {
             return v1 >= v2;
         },
         and: function (v1, v2) {
             return v1 && v2;
         },
         or: function (v1, v2) {
             return v1 || v2;
         }
       },
     });   

   });

});
来自的示例:

var express = require('express');
var exphbs  = require('express-handlebars');

var app = express();

var hbs = exphbs.create({
    // Specify helpers which are only registered on this instance. 
    helpers: {
        foo: function () { return 'FOO!'; },
        bar: function () { return 'BAR!'; }
    }
});

app.engine('handlebars', hbs.engine);
app.set('view engine', 'handlebars');

app.get('/', function (req, res, next) {
    res.render('home', {
        showTitle: true,

        // Override `foo` helper only for this rendering. 
        helpers: {
            foo: function () { return 'foo.'; }
        }
    });
});

app.listen(3000);
因此,您必须做些什么来赋予您的
gt()
lt()
等全局范围:在
hbs
变量中声明它们(==将它们传递给
exphbs.create()

render()
中传递
handlebar
属性可以覆盖
hbs
中定义的帮助程序

var express = require('express');
var exphbs  = require('express-handlebars');

var app = express();

var hbs = exphbs.create({
    // Specify helpers which are only registered on this instance. 
    helpers: {
        foo: function () { return 'FOO!'; },
        bar: function () { return 'BAR!'; }
    }
});

app.engine('handlebars', hbs.engine);
app.set('view engine', 'handlebars');

app.get('/', function (req, res, next) {
    res.render('home', {
        showTitle: true,

        // Override `foo` helper only for this rendering. 
        helpers: {
            foo: function () { return 'foo.'; }
        }
    });
});

app.listen(3000);
因此,您必须做些什么来赋予您的
gt()
lt()
等全局范围:在
hbs
变量中声明它们(==将它们传递给
exphbs.create()

通过在
render()
中传递
handlebar
属性,可以覆盖
hbs
中定义的助手