Discuss
/
JavaScript
/
慢着,好像不太对劲
慢着,好像不太对劲
Topic source前年我在廖大的网站上学了很久的python。 python实战课程完成后来学过一次javascript,效果不太理想。 可能当时我的脑容量已经饱和,塞不进新知识了。 这次我可能要接一个微信小程序的活,先来学一下javascript防身。 想不到本次的学习效果居然不赖,学得美滋滋,上次闹不懂的知识点这次全get到了。 学习有进步本来是件很开心的事情,但是我隐隐感觉到哪里不太对劲。
#日哦,我的python全忘光咯.............#
- 1
匿名sina网友V
//廖大用middleware的形式给ctx添加了一个render方法:
}
根据经验middleware会过滤每一个请求。 那么问题来了,是不是每次客户端请求都要给ctx实例增加一次render方法? 像这个本来应该只做一次的操作,假如访问量很大,每天做很多次岂不是白白浪费了计算资源。
本屌摸索了一下午,找到了一个好像还凑合的解决办法。
//先在app.js文件里捅咕一下
app.use(templateing())原来的一些零碎就不要了下面给templating.js动动手术
//这个function templating()不能要了,已经在app.js用上了魔改的render(v,m,c)
function templating(path, opts) { // 创建Nunjucks的env对象: var env = createEnv(path, opts); return async (ctx, next) => { // 给ctx绑定render函数: ctx.render = function (view, model) { // 把render后的内容赋值给response.body: ctx.response.body = env.render(view, Object.assign({}, ctx.state || {}, model || {})); // 设置Content-Type: ctx.response.type = 'text/html'; }; // 继续处理请求: await next(); }; }//templating.js向外界暴露createEnv
//最后来捅咕一下控制器,以controllers / index.js为例
这么改一下是不是显得有点科学了?