gpt4 book ai didi

javascript - 在 Express 中使用 res.json 时,替代 fs.readFile 加载 Handlebars 模板

转载 作者:行者123 更新时间:2023-12-03 07:37:26 24 4
gpt4 key购买 nike

我的目标是在我正在构建的 Express 4 应用程序中提供一个简单的实时 API 端点(使用 res.json()),该应用程序编译 Handlebars 模板和数据并返回一个字符串,然后取代 HTML 客户端。

我遇到的问题是,当前我必须使用 fs.readFile() 来读取模板的 Handlebars 内容,而我更愿意使用与用于显示一般 View 。这有可能吗?

这是一个基本示例;

数据端点(json):

{
"title": "Page Title"
}

模板.hbs

<h1>{{ title }}</h1>

实时端点(json)

{
"tpl": "<h1>Page Title</h1>
}

我的路线响应中的功能

var api = {};

fs.readFile('template.hbs', 'utf8', function(err, tpl) {

var template = hbs.compile(tpl);

// data here is the value returned from the data endpoint above
api.tpl = template(data);

res.json(api);

});

我什至不需要担心这个,因为也许这就是 Handlebars 在幕后所做的一切,但我只是想知道是否有一个我不知道的更简单的方法。

最佳答案

我建议您使用express-handlebars使用 Handlebars 作为渲染引擎。只需这样做:

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

...

app.engine('handlebars', expressHandlebars({/* config */}));
app.set('view engine', 'handlebars');

现在,假设您已传入右侧 config options,您的模板将使用 Handlebars 进行渲染。为您的应用程序。现在你可以使用普通的Express API ,像这样:

...

res.render('template', data, (err, html) => {
api.tpl = html;
res.json(api);
});

关于javascript - 在 Express 中使用 res.json 时,替代 fs.readFile 加载 Handlebars 模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35549717/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com