摘要:个人比较喜欢渲染,不喜欢之类,因此在试验开发时,第一时间就想到集成模块模块来自问题是,该模块不支持,就支持那么咱就出动模块来进行转换可是,仍然有问题。
个人比较喜欢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命令安装,结果不是最新版本,被坑了。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/80733.html
摘要:注意网站中用的所有技术可以交流学习不要以线上环境运行,因为源码中没有包含相关文件中的,授权登陆需要自己配置账号密码只有读取权限交流群 前言 线上环境小包总 showImg(https://segmentfault.com/img/bVTvhf?w=1297&h=763); 技术栈 服务器: node、koa2 客户端: vue、vuex、vue-router、Element-UI 数...
摘要:注意网站中用的所有技术可以交流学习不要以线上环境运行,因为源码中没有包含相关文件中的,授权登陆需要自己配置账号密码只有读取权限交流群 前言 线上环境小包总 showImg(https://segmentfault.com/img/bVTvhf?w=1297&h=763); 技术栈 服务器: node、koa2 客户端: vue、vuex、vue-router、Element-UI 数...
摘要:定义框架前端开发框架,它是一款基于语法的网页端开发框架。它类似于框架,可以快速开发服务,方便快捷。 定义 koa框架 web前端开发框架,它是一款基于es6语法的网页端开发框架。它类似于express框架,可以快速开发服务,方便快捷。 api手册http://koa.bootcss.com/ 开发实战篇 首先,创建package.json 使用版本为1.x npm init #依赖 d...
摘要:实现的四大模块上文简述了源码的大体框架结构,接下来我们来实现一个的框架,笔者认为理解和实现一个框架需要实现四个大模块,分别是封装创建类构造函数构造对象中间件机制和剥洋葱模型的实现错误捕获和错误处理下面我们就逐一分析和实现。 什么是koa框架? koa是一个基于node实现的一个新的web框架,它是由express框架的原班人马打造的。它的特点是优雅、简洁、表达力强、自由度...
阅读 1016·2021-09-26 09:55
阅读 3556·2021-09-24 10:30
阅读 1364·2021-09-08 09:36
阅读 2553·2021-09-07 09:58
阅读 603·2019-08-30 15:56
阅读 765·2019-08-29 18:32
阅读 3594·2019-08-29 15:13
阅读 1840·2019-08-29 13:49