KoaHub.js:使用ES6/7特性開發Node.js架構(2)

來源:互聯網
上載者:User

標籤:

 

    }     isLogin() {        console.log(‘base isLogin‘);    }} //index controller, admin/controller/index.controller.jsimport base from "./base.controller";export default class extends base{     constructor() {        super();        console.log(‘index constructor‘);    }     index() {        super.isLogin();        super.json({msg: ‘this is a msg‘});        console.log(‘index index‘);    }}

項目中可以使用 ES6/7 裡的所有特性,藉助 Babel 編譯,可以穩定運行在 >=0.12.0 的 Node.js 環境中。

組件3:koahub-yilianyun

 

易聯雲印表機介面

koahub-yilianyun易聯雲印表機node介面

Installation
$ npm install koahub-yilianyun
Use with co-request
var printer = require(‘koahub-yilianyun‘);var result = yield printer({    "partner": 914,//使用者id(管理中心系統整合裡擷取)     "apikey": "3785b31b2c84f3c47e51a6c4481f8a5fc2eea72a",//apikey(管理中心系統整合裡擷取)     "machine_code": "3400453726",//印表機終端號     "msign": "gn5p5zk585b6",//印表機終端密鑰     "time": parseInt(new Date().getTime() / 1000),//目前時間戳(伺服器用於驗證逾時)     "content": ‘2222‘//需要傳輸列印的內容資料 });

KoaHub.js -- 基於 Koa.js 平台的 Node.js web 快速開發架構

官網:http://js.koahub.com

組件4:koahub-handlebars

 

koahub-handlebars

koahub handlebars templates

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 = ‘<a href="‘ + url + ‘">‘ + text + ‘</a>‘;   return new hbs.SafeString(result);});

Your helper is then accessible in all views by using, {{link "Google" "http://google.com"}}

The registerHelperUtils, 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(‘requestURL‘, 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.

<!DOCTYPE html><html><head>  <title>{{title}}</title></head><body>  {{{body}}}</body></html>

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.

Options

The 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](https://github.com/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 = ‘[email protected]‘;  yield next;});

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

<title>{{title}}</title> <p>Contact : {{email}}</p>
Thanks

koa-hbs

Differents
  1. Configuration file incremental changes

  2. Modify some of the features and the default configuration

  3. ...

 

官網:http://js.koahub.com

 

KoaHub.js:使用ES6/7特性開發Node.js架構(2)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.