我正在学习一门课程,但无法理解 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
instagram
TA贡献1848条经验 获得超10个赞
这行 Express 中间件:
app.use(express.json({ extended: false }));
从传入的 http 请求流中读取请求正文,然后解析在该请求正文中找到的 JSON。解析 JSON 的结果属性被放入对象中,req.body以便后续请求处理程序使用来自那里的数据。该中间件填充它在解析的 JSON 中找到的任何属性。
这部分代码:
const {
company,
status,
skills,
...
} = 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 中的对象解构语法。
添加回答
举报
0/150
提交
取消
