为了账号安全,请及时绑定邮箱和手机立即绑定

req.body 是如何正确映射到这里的 const 变量数组的?

req.body 是如何正确映射到这里的 const 变量数组的?

侃侃尔雅 2021-12-23 10:29:49
我正在学习一门课程,但无法理解 express 如何将请求正文的 JSON 中的值正确映射到 const 变量数组。帖子请求正文中的原始 JSON 是:{  "status":"Systems Engineer",  "skills":"HTML ,CSS, Python, Machine Learning"}在 server.js 中,我将中间件初始化为:app.use(express.json({ extended: false }));在 profile.js 文件的后端:const {      company,      website,      location,      bio,      status,      githubusername,      skills,      youtube,      twitter,      facebook,      linkedin,      instagram    } = req.body;console.log(status);console.log(skills);输出:“系统工程师”“HTML、CSS、Python、机器学习”
查看完整描述

1 回答

?
慕桂英546537

TA贡献1848条经验 获得超10个赞

这行 Express 中间件:


app.use(express.json({ extended: false }));

从传入的 http 请求流中读取请求正文,然后解析在该请求正文中找到的 JSON。解析 JSON 的结果属性被放入对象中,req.body以便后续请求处理程序使用来自那里的数据。该中间件填充它在解析的 JSON 中找到的任何属性。


这部分代码:


const {

      company,

      status,

      skills,

      ...

      instagram

    } = req.body;

在 Javascript 中称为对象解构(与 Express 无关)。它基本上等价于这段代码:


const company = req.body.company;

const status = req.body.status;

const skills = req.body.skills;

...

const instagram = req.body.instagram;

任何具有不存在的命名变量的属性req.body最终都会得到一个相应的变量,其中包含一个undefined值。确实存在的那些会将该属性的值复制到命名变量。


此外,您的代码中没有数组。上面的第一个代码块是 Javascript 中的对象解构语法。


查看完整回答
反对 回复 2021-12-23
  • 1 回答
  • 0 关注
  • 239 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号