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

refactor Express-Handlebars helper functions to separate files

我使用 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 个文件。

如何从外部文件注册助手?有人可以给我举个例子吗?

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

helpers/foo.js:

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

module.exports = foo;

helpers/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 
    }
});