Javascript 节点从对象中删除字段或属性
通常在Javascript中,我们会这样做-Javascript 节点从对象中删除字段或属性,javascript,node.js,object,copy,deep-copy,Javascript,Node.js,Object,Copy,Deep Copy,通常在Javascript中,我们会这样做- var someObj = {}; someObj.name="somename"; delete someObj.name; 但在NodeJS中,删除对象字段/属性的正确方法是什么 用例:在您的NodeJs Rest API(例如Express server Rest API)中,您已收到20个标头字段,在内部,您必须调用另一个只需要18个(共20个)标头的服务。您可以创建全新的标题对象,并通过代码/循环等设置每个标题对象。一
var someObj = {};
someObj.name="somename";
delete someObj.name;
但在NodeJS中,删除对象字段/属性的正确方法是什么
用例:在您的NodeJs Rest API(例如Express server Rest API)中,您已收到20个标头字段,在内部,您必须调用另一个只需要18个(共20个)标头的服务。您可以创建全新的标题对象,并通过代码/循环等设置每个标题对象。一种方法是创建现有/传入标题对象的浅层副本,并删除/删除额外的2个字段
我已经尝试了上面的示例代码,它工作得很好,但不确定这是推荐的方法还是NodeJs本身固有的可用方法
标题的更多示例
您的express服务器请求标头
let headers=req.headers;
//assuming it has content-type:"application/json" , uuid:"some-test-uuid"
delete headers.uuid
//now after delete it has content-type:"application/json" only
如果您当前的代码没有导致任何问题,您可以通过实际的连接负载看到这些问题,那么这可能是非常好的 如果您必须处理大量的请求,那么一个潜在的问题是
delete
可能会很慢,并且节点会运行V8。如果您愿意,您可能会发现性能略有提高
- 设置不需要
或未定义
的属性,而不从对象中实际删除它们(确保服务可以处理此格式),或空
- 使用对象rest语法收集您确实需要的属性,例如:
使用除function handleRequest(someObjWithLotsOfProperties) { const { name, userId, ...rest } = someObjWithLotsOfProperties; callOtherAPI(rest); }
和name
之外的所有属性调用其他APIuserId
他们可以考虑如果当前的方法变得明显地有问题。在Node.JS中删除属性与浏览器JavaScript一样。不能像删除对象属性那样删除标题。nodejs中的语言只是Javascript。事实上,它是在Chrome中运行的同一个Javascript引擎。因此,您可以使用
delete
从对象中删除属性,就像Javascript中的任何地方一样。对于请求头,它完全取决于您使用的API以及事物的结构。您必须向我们展示这些代码,以便我们提供建议。@quicVO-我知道这是JavaScript,并且已经给出了我如何处理它的示例代码。尝试查看任何本机Nodejs函数(本机,我指的是fs、require等)