变量赋值没有分配给变量——我做错了什么?

Variable assignment does not assign to variable - what am I doing wrong?

我在非异步函数中执行变量赋值,但目标变量的值在赋值语句运行后没有改变。

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

ctxctx.response 都没有被冻结。

我希望 ctx.response.status 在 'AFTER' console.log

中等于 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

事实证明,这个问题是由之前的中间件调用 next() 引起的 没有 await 关键词

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