В server.js
у меня есть что-то вроде этого:Использование хелперов изнутри экспресс-рули вернуть HTML отформатированный код
var express = require('express');
var path = require('path');
var exphbs = require('express-handlebars');
var app = new express();
var handlebars = require('./helpers.js')(exphbs);
app.set('views', path.join(__dirname, 'views'));
app.engine('.hbs', handlebars.engine);
app.set('view engine', '.hbs');
app.set ('port', (process.env.PORT || 5000));
app.get('/', function(req,res){
res.render('home', {
title: 'Express App with Handlebars templates',
content: 'This is some content',
persons: [
{
name: 'branchito',
instrument: 'guitar',
},
{
name: 'joe',
instrument: 'flute',
},
]
});
});
app.listen(app.get('port'), function(){
console.log('Server started on port ' + app.get('port'));
})
, а затем в моем helpers.js
файле:
function hbsHelpers(hbs) {
return hbs.create({
helpers: { // This was missing
inc: function(value, options) {
console.log('reading it');
return parseInt(value) + 1;
},
strong: function(text) {
return '<strong>' + text + '</strong>';
}
// More helpers...
}
});
}
module.exports = hbsHelpers;
Но тогда вывод, генерируемый strong
helper делает это как <strong>...</strong>
.. Как бы я пошел, чтобы строка не была сохранена, я знаю, что есть Handlebars.SafeString()
, но не знаю, как ее использовать из этого экземпляра express-handlebars.