首页 > 解决方案 > 为什么我会丢失帮助程序错误:包含以前工作过的代码的部分

问题描述

我正在尝试使用 express 处理对表单的获取请求,我的代码如下:

app.get('/newsletter', function(req, res){
res.render('newsletter');
});

发出请求时出现此错误:

> Error: Missing helper: 'section'
>     at new Exception (G:\express\node_modules\handlebars\dist\cjs\handlebars\exception.js:13:41)
>     at Object.<anonymous> (G:\express\node_modules\handlebars\dist\cjs\handlebars\base.js:57:13)
>     at Object.eval (eval at createFunctionContext (G:\express\node_modules\handlebars\dist\cjs\handlebars\compiler\javascript-compiler.js:189:23),
> <anonymous>:18:213)
>     at G:\express\node_modules\handlebars\dist\cjs\handlebars\runtime.js:86:31
>     at G:\express\node_modules\handlebars\dist\cjs\handlebars\compiler\compiler.js:465:21
>     at ExpressHandlebars._renderTemplate (G:\express\node_modules\express3-handlebars\lib\express-handlebars.js:339:22)
>     at ExpressHandlebars.renderTemplate (G:\express\node_modules\express3-handlebars\lib\express-handlebars.js:196:18)
>     at fn (G:\express\node_modules\async\lib\async.js:582:34)
>     at Immediate.<anonymous> (G:\express\node_modules\async\lib\async.js:498:34)
>     at runCallback (timers.js:789:20)

标签: node.jsformsexpressget

解决方案


想通了......我需要将助手对象添加到我的车把配置中......这是更正我的代码的补充;

const handlebars = require('express3-handlebars').create(
{defaultLayout:'main',
helpers:{
    section:function(name, options){
        if(!this._sections){this._sections = {}};
        this._sections[name] = options.fn(this);
        return null;
    };
}});

推荐阅读