个人比较喜欢handlebars渲染,不喜欢ejs、jade之类,因此在试验koa2开发时,第一时间就想到集成koa-hbs模块!

koa-hbs模块来自https://github.com/gilt/koa-hbs

问题是,该模块不支持koa2,就支持koa1

那么咱就出动koa-convert模块来进行转换……可是,仍然有问题。关键点在于ctx.render方法仍然是个generator函数。

这难不倒咱,翻一下koa-convert模块的源码,有样学样,用下面的办法解决之:

const hbs = require('koa-hbs');

const convert = require('koa-convert');

const co = require('co');

app.use(convert(hbs.middleware({

viewPath: __dirname + '/views',

partialsPath: __dirname + '/views/partials'

})));

app.use(async (ctx, next) => {

ctx.render_ = ctx.render;

ctx.render = function (tpl, locals) {

return co.call(ctx, ctx.render_(tpl, locals));

}

await next();

})

另外,如果不用koa-hbs模块,而是用支持koa2的koa-views模块,必须用最新的5.1.2版本(此文章发表时的最新版本),或更高的版本:

npm i koa-views@5.1.2

我在一开始时使用npm i koa-views@next命令安装,结果不是最新版本,被坑了。

hbs模块 mysql_让koa-hbs模块支持koa2相关推荐

  1. nginx添加第三方模块,以及启用nginx本身支持的模块

    nginx添加第三方模块,以及启用nginx本身支持的模块 Nginx添加第三方模块 转载于:https://www.cnblogs.com/linjiqin/p/11512867.html

  2. MVC4做网站后台:模块管理1、修改模块信息

    网站可能会包含一些模块:像文章.产品.图片.留言等. 栏目模块主要实现功能,启用或禁用模块,模块权限设置,模块上传设置等. 权限设置和上传设置以后专门考虑,先来显示或禁用模块. 1.在顶部导航栏添加管 ...

  3. python logging模块的作用_Python 日志模块logging分析及使用-2

    本文作为Python日志模块的补充,主要介绍日志回滚RotatingFileHandler和TimedRotatingFileHandler的使用,以及其所带来的问题.Logger对象的日志等级是如何 ...

  4. python 如何查看模块所有方法-Python查看模块(变量、函数、类)方法

    前面章节中,详细介绍了模块和包的创建和使用(严格来说,包本质上也是模块),有些读者可能有这样的疑问,即正确导入模块或者包之后,怎么知道该模块中具体包含哪些成员(变量.函数或者类)呢? 查看已导入模块( ...

  5. Python学习-基础篇4 模块与包与常用模块

    一 模块介绍 1.什么是模块?#常见的场景:一个模块就是一个包含了一组功能的python文件,比如spam.py,模块名为spam,可以通过import spam使用.#在python中,模块的使用方 ...

  6. python哪个关键字可以导入模块_关于python导入模块import与常见的模块详解

    0.什么是python模块?干什么的用的? Java中如果使用abs()函数,则需要需要导入Math包,同样python也是封装的,因为python提供的函数太多,所以根据函数的功能将其封装在不同的m ...

  7. jdk 11 模块系统_JDK 9:模块系统状态的重点

    jdk 11 模块系统 马克·雷因霍尔德 ( Mark Reinhold )的"模块系统状态 (SOMS)"已于本月初发布,它提供了信息丰富的可读性"对Jigsaw项目中 ...

  8. elementui的css文件没有引入_Python中引入模块详细介绍,使用模块的过程中注意事项教程...

    ​ 为此 Python 提供了一个办法,把这些定义存放在文件中,这个文件被称为模块. 模块是一个包含所有你定义的函数和变量的文件,其后缀名是.py.模块可以被别的程序引入,以使用该模块中的函数等功能. ...

  9. Linux 核心模块,LINUX核心及核心模块的简单介绍

    在整个开机的过程中,能否成功驱动主机的硬件,是核心(kernel)的工作. 核心一般都是压缩文件,在使用之前,要将解压,才能加载到主存储器中. 随着硬件种类增加,目前核心都具有可读取模块化驱动程序的功 ...

最新文章

  1. linux下如何判断oracle数据库tns是否设置正常
  2. mac下载安装本地mongodb
  3. boost::range模块实现map_keys相关的测试程序
  4. 入门顶点动画纹理的实例化绘制
  5. 微信小程序setTimeout自动跳转页面
  6. DockerONE 干货 深入理解Docker容器和镜像
  7. fcpx插件Title Pop:78个可自定义的Final Cut Pro X动画标题+ 2个额外背景
  8. SQL Server Management Studio –分步安装指南
  9. Kelvin云层效果Ps笔刷
  10. c语言编程怎样进行反函数计算器,反函数计算器
  11. linux下rfkill命令管理蓝牙和wifi
  12. xshell官方个人免费版申请下载使用
  13. yytext table html,展开label,利用YYText实现文字显示不完末尾添加全文
  14. 苹果电脑怎么进入虚拟服务器设置,苹果Mac电脑 Vmware虚拟机共享文件夹设置教程...
  15. coalesce函数详解--判空三目表达式
  16. 小程序跳转小程序,小程序跳转公众号,小程序跳转h5
  17. HTML生成PDF、web打印动态分页、预览。内容满了,自动换页、移动端兼容 bookjs-eazy
  18. 三国刘备十大名言:三分天下要靠“混
  19. 世界各国的12个王朝
  20. 【C++】win 10:VC 6.0 中文版下载、安装、使用

热门文章

  1. .net 部署到服务端IIS,Process调用exe程序无法运行问题解决
  2. 基于低功耗蓝牙的手机APP(文末有整个工程的下载连接哦!)
  3. Fragment VS Custom View Container
  4. 安装 Mongrel
  5. Sublimenbsp;Textnbsp;2nbsp;快键健
  6. 2022年武汉中级工程师职称申报条件、申报材料要求和申报流程是什么?
  7. xset 关闭屏幕保护-关闭节电模式
  8. Solidity 基础知识
  9. 内弹道仿真matlab全代码
  10. 12306 再爆数据泄漏,中铁总局官方辟谣:没有此事