koa html中添加数据,Koa2设置全局变量_koa2给所有页面渲染全局数据 ctx.state

Koa2如何设置全局变量呢或者koa2给所有页面渲染全局数据呢,比如网站前台每个页面都用到导航数据,这样的话我们需要在每个路由里面去数据库查询导航数据,然后渲染,我们想的是可以在全局查询好数据直接渲染,下面我们看看如何实现。

Koa2中可以通过ctx.state配置全局变量。ctx.state配置的全局变量我们不仅可以在其他的路由页面使用,我们还可以在全局模板使用.

如下代码:

//配置中间件 获取url的地址

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

//console.log(ctx.request.header.host);

var pathname=url.parse(ctx.request.url).pathname;

//导航条的数据

var navResult=await DB.find('nav',{$or:[{'status':1},{'status':'1'}]},{},{

sortJson:{'sort':1}

})

//模板引擎配置全局的变量

ctx.state.nav=navResult;

ctx.state.pathname=pathname;

await next()

})

其中ctx.state后面的变量是随便写的。

这样的话我们就可以在模板任意地方 任意路由使用pathname。也可以在其他的路由中通过

ctx.state.pathname获取全局的pathname变量

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值