1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 基于 Koa平台Node.js开发的KoaHub.js的模板引擎代码

基于 Koa平台Node.js开发的KoaHub.js的模板引擎代码

时间:2024-05-01 23:05:31

相关推荐

基于 Koa平台Node.js开发的KoaHub.js的模板引擎代码

php教程|php手册

thinkphp代码,代码示例,代码参考,php短信,数据库备份代码,令牌验证,去除代码中的空白和注释Koa.js,No

php教程-php手册

基于 Koa平台Node.js开发的KoaHub.js的模板引擎代码

koahub-handlebars

视频视频源码对比,wsl上运行ubuntu,爬虫饲养盒价格,php面向切面,监控排名seolzw

koahub-handlebars

c 棋牌游戏麻将源码,vscode柱状图颜色,ubuntu gdb下载,web打包发布tomcat,使用爬虫测试,php语法 高级,滨海seo优化项目中心,商业信息发布网站源码,绿色的小说网站模板lzw

koahub handlebars templates

召生网站源码,vscode开启服务器,ubuntu内置鼠标,tomcat改变字符编码,爬虫如何签到,数组倒置 php,做百度seo 广告,网站被主流搜索引擎收录的网页数量是多少,手机端页面模板免费lzw

Installation

$ npm install koahub-handlebars

Use with koa

var koa = require(koa);

var hbs = require(koahub-handlebars);

var app = koa();

// koahub-handlebars is middleware. `use` it before you want to render a view

app.use(hbs.middleware({

viewPath: __dirname + /views

}));

// Render is attached to the koa context. Call `this.render` in your middleware

// to attach rendered html to the koa response body.

app.use(function *() {

yield this.render(index, {title: koahub-handlebars});

})

app.listen(3000);

Registering Helpers

Helpers are registered using the #registerHelper method. Here is an example using the default instance (helper stolen from official Handlebars docs:

hbs = require(koahub-handlebars);

hbs.registerHelper(link, function(text, url) {

text = hbs.Utils.escapeExpression(text);

url = hbs.Utils.escapeExpression(url);

var result = \ + text + \;

return new hbs.SafeString(result);

});

Your helper is then accessible in all views by using, {{link “Google” “”}}

The registerHelper, Utils, and SafeString methods all proxy to an internal Handlebars instance. If passing an alternative instance of Handlebars to the middleware configurator, make sure to do so before registering helpers via the koahub-handlebars proxy of the above functions, or just register your helpers directly via your Handlebars instance.

You can also access the current Koa context in your helper. If you want to have a helper that outputs the current URL, you could write a helper like the following and call it in any template as {{requestURL}}.

hbs.registerHelper( equestURL, function() {

var url = hbs.templateOptions.data.koa.request.url;

return url;

});

Registering Partials

The simple way to register partials is to stick them all in a directory, and pass the partialsPath option when generating the middleware. Say your views are in ./views, and your partials are in ./views/partials. Configuring the middleware via

app.use(hbs.middleware({

viewPath: __dirname + /views,

partialsPath: __dirname + /views/partials

}));

will cause them to be automatically registered. Alternatively, you may register partials one at a time by calling hbs.registerPartial which proxies to the cached handlebars #registerPartial method.

Layouts

Passing defaultLayout with the a layout name will cause all templates to be inserted into the {{{body}}} expression of the layout. This might look like the following.

{{title}}{{{body}}}

In addition to, or alternatively, you may specify a layout to render a template into. Simply specify {{!< layoutName }} somewhere in your template. koahub-handlebars will load your layout from layoutsPath if defined, or from viewPath otherwise.At this time, only a single content block ({{{body}}}) is supported.OptionsThe plan for koahub-handlebars is to offer identical functionality as koa-hbs (eventaully). These options are supported now.viewPath: [required] Full path from which to load templates (Array|String)

handlebars: Pass your own instance of handlebars

templateOptions: Hash of handlebars options to pass to template()

extname: Alter the default template extension (default: .html)

partialsPath: Full path to partials directory (Array|String)

defaultLayout: Name of the default layout

layoutsPath: Full path to layouts directory (String)

disableCache: Disable template caching (default: .true)

Locals

Application local variables ([this.state](/koajs/koa/blob/master/docs/api/context.md#ctxstate)) are provided to all templates rendered within the application.

app.use(function *(next) {

this.state.title = My App;

this.state.email = me@;

yield next;

});

The state object is a JavaScript Object. The properties added to it will be exposed as local variables within your views.

{{title}}

Contact : {{email}}

Thanks

koa-hbs

Differents

Configuration file incremental changes

Modify some of the features and the default configuration

官网:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。