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

标签 javascript node.js express

我正在学习一门类(class),但无法理解 Express 如何将请求正文的 JSON 中的值正确映射到 const 变量数组。

post 请求正文中的原始 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、机器学习”

最佳答案

这行 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 中的对象解构语法。

关于javascript - req.body 如何正确映射到这里的 const 变量数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58791164/

相关文章:

javascript - 无法通过 REST API 更新 Parse 对象

javascript - 从另一个 iframe 访问一个 iframe 的元素

mongodb - 连接数据库错误(mongo和nodejs)

javascript - 在客户端 JavaScript 中访问 Express.js 局部变量

node.js - 使用 Express 从模板内部访问 mountpath 变量

javascript - 如何使用 Javascript 在 Adob​​e Illustrator 中调用 "symbol"?

node.js - 谷歌模拟器上的操作不分离屏幕输出设备

node.js - brew 卸载 Node 错误 Alpine 脉

express - 在 AWS 上设置 MERN 应用程序的最佳实践

javascript - jVectormap渐变背景填充