javascript - express-hbs 实例 registerAsyncHelper 奇怪的哈希

标签 javascript node.js express handlebars.js

我正在使用 express-hbs nodejs 模块,但在使用 registerAsyncHelper 时遇到问题.我需要在限制范围内编译一个布局,因为我创建了一个新的 Handlebars 实例,并且我在这个实例中创建了一个助手。但是当我编译布局时,它会返回一个奇怪的散列。 我的代码是这样的:

var hbs = require('express-hbs');
var hbs_temp = hbs.create();

hbs_temp.registerAsyncHelper( 'content', function( text, cb ) {     
    fs.readFile( 'some-file', { encoding: 'utf8' }, function( err, data ) {
        cb( new hbs_temp.SafeString( data ) );
    });
});

hbs_temp.compile( '<div> {{content}} </div>' )(  );`

结果:

<div> __WEIRD HASH__ </div>

我的问题是。我的代码有问题,或者这是一个“express-hbs”错误? 谢谢!

最佳答案

express-hbs 模块将这些哈希插入到异步返回值的位置,并在异步调用完成后替换它们。您必须在 Express 的上下文中使用它作为渲染引擎才能看到它的工作。

关于javascript - express-hbs 实例 registerAsyncHelper 奇怪的哈希,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23546427/

相关文章:

javascript - (...).then 不是 Node (expressJS) 中的函数

xml - 如何使用 Express.js 和 Backbone.js 将 XML Web 服务输出转换为 Json

javascript - 如何将 Plupload 与 Node.js 一起使用并显示上传百分比?

javascript - ng-repeat 和字符串替换表达式值

javascript 避免重复的 URL

node.js - 根据容器环回更改允许的内容类型 - 组件存储

javascript - Chrome 和 Firefox 中的 LocalStorage 异常

node.js - 在 Laravel 5.4 和 Node.js 上使用 Laravel Mix Error 编译 Assets

javascript - 类型错误 : Cannot read property 'firstChild' of undefined While rendering the react page server side

javascript - 从 FullCalendar 获取日期并将其发送到 PHP