如题,官方并没有ctx.response.locals用来设置全局变量。
全局的话 我一般就直接做成配置的数据了~ 不知道这么做对不对
@hezhongfeng 你这只是常量,如果是变量的话就不行了。
你要的是ctx.state?
ctx.state
const Koa = require('koa'); const app = new Koa(); //作用和express中的app.locals = {//xxx} 一样,全局生效 app.context.state = Object.assign(app.context.state, {key1 : value1, key2: value2});
设置的值可以应用到模板中,koa-ejs会自动merge state 参数
state
如果是每次请求生命周期内生效,得用中间件了:
app.use((ctx, next)=>ctx.state = Object.assign(ctx.state, {key1: value1, key2: value2}))
= =a 你要的是 global.xxx = 'a'?
global.xxx = 'a'?
@hyj1991 就这个了.谢谢!
@995270418L 不客气哇
@995270418L 怎么不行?直接使用一个js对象,不用json 动态修改这个js对象不就行了? 当然了,我这是笨方法,但是绝对也是可以用的0.0
@hezhongfeng 666
我想问一个问题,就是
ctx.state.user = userData; console.log(ctx.state); ctx.redirect('/');
我想注册之后,把用户信息留在ctx.state对象里,然后,/页面可以访问到里面的值,但是发现redirect之后,访问不到,对ctx.state不太了解,有人可以可以帮忙解答一下吗?
/
CNode 社区为国内最专业的 Node.js 开源技术社区,致力于 Node.js 的技术研究。
全局的话 我一般就直接做成配置的数据了~ 不知道这么做对不对
@hezhongfeng 你这只是常量,如果是变量的话就不行了。
你要的是
ctx.state?设置的值可以应用到模板中,koa-ejs会自动merge
state参数如果是每次请求生命周期内生效,得用中间件了:
= =a 你要的是
global.xxx = 'a'?@hyj1991 就这个了.谢谢!
@995270418L 不客气哇
@995270418L 怎么不行?直接使用一个js对象,不用json 动态修改这个js对象不就行了? 当然了,我这是笨方法,但是绝对也是可以用的0.0
@hezhongfeng 666
我想问一个问题,就是
我想注册之后,把用户信息留在ctx.state对象里,然后,
/页面可以访问到里面的值,但是发现redirect之后,访问不到,对ctx.state不太了解,有人可以可以帮忙解答一下吗?