如何简化Node.js Express中重复的req.query对象赋值代码?
简化方案
方案1:直接传递(结构完全匹配时最优)
如果req.query的结构和你要插入的文档结构完全一致(没有多余字段),直接传req.query就行,完全没必要手动复制每个字段:
User.insertOne(req.query)
方案2:解构赋值提取所需字段
如果req.query里有多余字段,不想插入到数据库,就用解构赋值把需要的字段提出来,利用ES6的属性简写(变量名和属性名一致时可省略key: value):
const { firstName, lastName, bestFriend, hobbies, address, contact } = req.query; User.insertOne({ firstName, lastName, bestFriend, hobbies, address, contact });
方案3:嵌套解构(嵌套对象有多余字段时用)
如果address或contact里也有不需要的字段,可以用嵌套解构精准提取:
const { firstName, lastName, bestFriend, hobbies, address: { street, number, plz, city, country }, contact: { telephone, email } } = req.query; User.insertOne({ firstName, lastName, bestFriend, hobbies, address: { street, number, plz, city, country }, contact: { telephone, email } });
关于with语句
确实不建议用with,它会模糊变量的作用域,不仅降低代码可读性,还容易引发意想不到的bug,属于被淘汰的写法,完全没必要考虑。
内容的提问来源于stack exchange,提问作者Gehmasse
相关产品推荐
相关产品推荐

