express-hbs-segment v1.0.0-beta2
express-hbs-segment
express-hbs-segment takes care of recurring elements (called segments or fragments) for your application. Sometimes, the express-hbs partial behaviour is not the best opportunity. Maybe the partial should load its own data or simply accept a bunch of configuration attributes. At this point express-hbs-segment is a good choice. The built-in example/ directory gives you a short instruction.
Install
npm i --save express-hbs-segmentUsage
var hbs = require('express-hbs');
var segment = require('express-hbs-segment');
segment.configure({
cwd: process.cwd(),
directories: ['app/segment/*', 'lib/segment/*'],
handlebars: hbs
});{{segment id="latest_news" limit=5 category=1337 title="Latest News"}}Create a segment
Creating segments is really easy. Just add a folder (e.g. latest-news) and create a .hbs and .js file with the same name (in this example: latest-news) in it.
The segment controller must returns a bluebird Promise instance. The data passed to the resolve-function will be forwarded to the hbs template.
var Promise = require('bluebird');
module.exports = function latestNews(options) {
return Promise.resolve({
options: options
});
};The above shown example forwards the obtained options object to the view.
FAQ
Is there a reason why this modules depend on express-hbs?
Unfortunately, the module handlebars does not support an asynchronous helper workflow. However, express-hbs comes with a method called registerAsyncHelper which takes care of the above-mentoined process.
