KoaHub.js:使用ES6/7特性开发Node.js框架(2)

    }
 
    isLogin() {
        console.log(‘base isLogin‘);
    }
}
 
//index controller, admin/controller/index.controller.js
import 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

时间: 2024-11-10 07:05:39

KoaHub.js:使用ES6/7特性开发Node.js框架(2)的相关文章

KoaHub.js:使用ES6/7特性开发Node.js框架

KoaHub.js -- 基于 Koa.js 平台的 Node.js web 快速开发框架.可以直接在项目里使用 ES6/7(Generator Function, Class, Async & Await)等特性,借助 Babel 编译,可稳定运行在 Node.js 环境上. 介绍 KoaHub.js -- 基于 Koa.js 平台的 Node.js web 快速开发框架.可以直接在项目里使用 ES6/7(Generator Function, Class, Async & Await)

VS轻松开发Node.js应用

PTVS开发团队又开发出一款可以在VS里编写Node.js应用程序的插件--NTVS(Node.js Tools for Visual Studio),开发者可以在VS里轻松开发Node.js应用. NTVS是一款开源工具,遵循Apache开源许可,由微软和社区维护.适用于Node.js 0.10.20版或更高的版本上.NTVS具有可编辑.智能提示.分析.NPM.调式(本地和远程)等功能,并且还可以发布在Azure网站和Cloud服务上. Node.js可在32位和64位架构上运行,NTVS也同

intellij IDEA开发node.js

现在网上好像关于IDEA开发node.js的讲解不是太多,今天试了一下,竟然成功了.... 1.安装nodejs http://nodejs.org/download/  自动根据系统下载自己的版本node.js 2.环境变量 windows 安装,不需要配置环境变量   mac安装后,会提示你配置环境变量,需要配置环境变量(貌似) 命令  sudo vim /etc/paths 输入密码 然后将路径输入进去, 3.测试是否成功 控制台输入node -v 或者输入node 进去node模式然后输

使用WebStorm和Git开发Node.js应用

使用WebStorm和Git开发Node.js应用 一.使用WebStorm创建express项目1.创建项目File|new project,先选择location为D:\,输入项目名称Caller,选择Node.js Express项目.2.修改配置:智能感知file|setting|javascript|node.js,在project目录下只选择三个Ecma script,也就是js支持,再选择两个node.js支持.移动到public目录,开启dhtml.html5.注意每行右侧是可多

在Visual Studio上开发Node.js程序

[题外话] 最近准备用Node.js做些东西,于是找找看能否有Visual Studio上的插件以方便开发.结果还真找到了一个,来自微软的Node.js Tools for Visual Studio(NTVS),虽然现在仅发布了1.0 Alpha版本,但使用起来已经非常方便.而且,其开发团队与Python Tools for Visual Studio(PTVS)是同一个,而PTVS就是Visual Studio 2013中要创建自带的Python项目需要安装的那个程序,所以大可放心的使用NT

在Visual Studio上开发Node.js程序(2)——远程调试及发布到Azure

[题外话] 上次介绍了VS上开发Node.js的插件Node.js Tools for Visual Studio(NTVS),其提供了非常方便的开发和调试功能,当然很多情况下由于平台限制等原因需要在其他机器上运行程序,进而需要远程调试功能,不过还好,NTVS提供的远程调试也非常方便. [系列索引] 在Visual Studio上开发Node.js程序——NTVS介绍及使用 在Visual Studio上开发Node.js程序(2)——NTVS远程调试及发布到Azure [文章索引] NTVS远

在Visual Studio 2013 上开发Node.js程序

[题外话] 最近准备用Node.js做些东西,于是找找看能否有Visual Studio上的插件以方便开发.结果还真找到了一个,来自微软的Node.js Tools for Visual Studio(NTVS),虽然现在仅发布了1.0 Alpha版本,但使用起来已经非常方便.而且,其开发团队与Python Tools for Visual Studio(PTVS)是同一个,而PTVS就是Visual Studio 2013中要创建自带的Python项目需要安装的那个程序,所以大可放心的使用NT

开发Node.js应用最佳IDE Top 10(下)

在开发Node.js应用最佳IDE Top 10(上)一文中,我们为大家介绍了排名前5的开发Node.js应用最佳的IDE,有Cloud 9.Intellij IDEA.WebStorm.Komodo.Koding这五个最受欢迎的IDE.今天,我们将继续为大家揭晓余下的排名,一起来看看都有哪些IDE榜上有名吧! 6) Eclipse Eclipse是一个使用Java. PHP.C++等开发Web的基于云的流行IDE.您可以使用Node.js插件轻松地利用Eclipse IDE的nodeclips

详细说明 配置 Sublime Text 开发node.js(windows)包括sub2和sub3的区别

1.先安装Sublime Text  2或者3皆可 2.下载 sublime Text 的nodejs插件 得到那个zip包(后面会介绍用Package Control安装) 3.下载后解压 直接改名为nodejs(一定是这个名字,否则sub2里编辑default文件会报错) 放到 Preferences-->浏览程序包Browse Packages所在的文件夹. 4.打开刚才的nodejs文件夹 找到根目录里面的 Nodejs.sublime-build文件 如下 { "cmd"