我正在学习一门类(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/