重构Express-Handlebars辅助函数来分隔文件

时间:2018-01-16 13:41:15

标签: javascript node.js express express-handlebars

我使用Express-Handlebars并希望重构此代码示例以分隔文件

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

    const handlebars = exphbs.create({
        defaultLayout: 'index',
        extname: 'hbs',
        helpers: {
          foo: function () { // first helper
            return 'FOO!';
          },
          bar: function () { // second helper
            return 'BAR!';
          } 
          //, nth helper ...
        }
    });

原因是您为什么要将所有HTML逻辑放入app.js文件中。我想为1个帮助者提供1个文件。

如何从外部文件注册帮助程序?有人可以给我一个例子吗?

1 个答案:

答案 0 :(得分:2)

尝试在每个帮助程序中创建一个模块,例如在helpers文件夹中:

助手/ foo.js:

var foo = function () {
    return 'FOO!';
}

module.exports = foo;

助手/ bar.js:

var bar = function () {
    return 'BAR!';
}

module.exports = bar;

app.js:

const express = require('express');
const exphbs = require('express-handlebars');
const foo = require('helpers/foo');
const bar = require('helpers/bar');

const handlebars = exphbs.create({
    defaultLayout: 'index',
    extname: 'hbs',
    helpers: {
      foo: foo,
      bar: bar 
    }
});