javascript - req.body 在分配给变量后更改值
问题描述
我真的不明白这里发生了什么,并希望指出我的假设中的缺陷:
putUser: async (req, res, next) => {
console.log('test1', req.body)
let data = req.body
data["local.password"] = 'xd121244212141243'
console.log('test2', data)
console.log('test3', req.body)
此代码块产生的结果为:
test1 { 'local.username': 'name','local.password': 'passwordToChange' }
test2 { 'local.username': 'name','local.password': 'xd121244212141243' }
test3 { 'local.username': 'name','local.password': 'xd121244212141243' }
所以问题是,为什么 req.body 的值会发生变化?这是因为我们指向对象而不是创建新对象吗?
解决方案
这是因为我们指向对象而不是创建新对象吗?
是的。
let data = req.body
req.body
这将从to复制对对象的引用data
,因此它们都引用同一个对象。改为复制:
let data = { ...req.body };
推荐阅读
- windows - 实时输入音频上的信号处理/FFT
- android - 导入tableview时清单合并失败
- mysql - 将 SQL 查询转换为 SQLAlchemy
- jquery - 使用 Webpack4 加载 JQuery
- c# - 当提交按钮的 POST 时,asp.net core mvc 下拉列表设置为 null
- replace - 将文件名从 Service-AMR.deploy 替换为 Service.deploy 的 TFS 构建步骤
- javascript - 从三个叠瓦组件中获取道具
- python - 根据另一列的值过滤数据框列
- python - Pyomo 初始化错误:错误:评估表达式:未初始化的 NumericValue 对象没有值
- android - ionic 3 fcm.onNotification() 错误:找不到类