if req.body 的 ES6 语法中的解构给了我整个对象而不是特定值

Posted

技术标签:

【中文标题】if req.body 的 ES6 语法中的解构给了我整个对象而不是特定值【英文标题】:Destructuring in ES6 syntax of of req.body gives me the whole object instead of specific value 【发布时间】:2021-02-23 11:33:10 【问题描述】:

这可能是缺乏理解,但这是第一次发生这种情况。我的函数如下所示:

exports.handleFormSubmit = functions.https.onRequest(async (req: Request, res: Response) => 

    const  formData = JSON.parse(req.body);
    console.log(formData.name); // gives the name
   
    // if I do this instead

    const  formData: name  = JSON.parse(req.body); 
    console.log(name) // gives entire object instead of just the name.
)

是什么导致了所描述的行为?

【问题讨论】:

【参考方案1】:

formData 扩展为 formData: formData (see here)。这意味着键formData 处的值将存储到变量formData 中。当你有formData: name 时,意味着formData 键处的值将被存储到变量name 中,这与你之前的基本等价。如果你想解构name,那么你应该双重解构:

const formData: name = JSON.parse(req.body);

【讨论】:

Minor nit: "这意味着密钥formData将被存储到变量formData中。" 不是密钥,而是 键标识的属性。

以上是关于if req.body 的 ES6 语法中的解构给了我整个对象而不是特定值的主要内容,如果未能解决你的问题,请参考以下文章

es6语法总结-解构赋值

ES6中的解构赋值

ES6入门之变量的解构赋值

ES6中新语法:解构

ES6函数参数解构

ES6之解构赋值