req.body如何正确映射到此处的变量const数组?

我一直在学习,无法理解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,机器学习”

lihonglian26 回答:req.body如何正确映射到此处的变量const数组?

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

本文链接:https://www.f2er.com/3128277.html

大家都在问