return 值将用这行代码存储在哪里:“ const { value: { name, email, password } } = await ctx.request.body().value; ”

Where do return values will be stored with this line of code: " const { value: { name, email, password } } = await ctx.request.body().value; "

我不明白来自 ctx.request.body().value 的变量将存储在哪里?

const { value: { name, email, password } } = await ctx.request.body().value;

为什么我们不只使用下面一行而不是上面一行?

const { name, email, password }  = await ctx.request.body().value;

或者为什么我们不使用 const value = await ctx.request.body().value; 然后使用 value.name , value.email , value.password?

有人可以解释一下这个语法吗?

正如 DemiPixel 在评论中建议的那样,查看 object 解构可能有助于弄清楚,基本上您编写的语句之间的差异是 ctx.request.body() 的期望值。

在第一种情况下,您假设 body 看起来有点像这样: {value: {value: {name: '', email: '', password: ''}},正如您希望使用键 value 解构 object,但您已经从响应中得到了 .value。这可能是它可能无法按预期工作的原因。

第二种情况假设 body 看起来像这样:{value: {name: '', email: '', password: ''},因此如果你解构 ctx.request.body().value 你确实得到 const { name, email, password }.

希望它能更清楚一点