变量分配没有分配给变量-我在做什么错?

时间:2019-05-29 14:23:00

标签: node.js koa2

我正在非异步函数中执行变量分配,但是目标变量的值在分配语句运行后不会更改。

ctx是Koa2上下文。收到http响应后,此代码将运行。我正在尝试使用(http)响应对象中的值更新上下文。

ctxctx.response均未冻结。

我希望在“ AFTER”控制台中,ctx.response.status等于200

我怀疑这是Node的特质,但我不太了解Node。

我在这里做什么错了?

console.log('BEFORE=ctx.response.status='+ctx.response.status+'/response.status='+response.status)
  ctx.response.status = response.status
console.log(' AFTER=ctx.response.status='+ctx.response.status+'/response.status='+response.status)
  ctx.response.timestamp = response.timestamp
  ctx.response.body = response.body

This was my output. Note the BEFORE/AFTER tags:

BEFORE=ctx.response.status=404/response.status=200
 AFTER=ctx.response.status=404/response.status=200

1 个答案:

答案 0 :(得分:0)

事实证明,此问题是由先前的中间件调用next()导致而没有 等待 关键字 < / p>

我不是Node或Koa的专家,但是从研究看来,状态属性变得不可变是有条件的。