在导入到JSON格式的MongoDB之前,清理HTTP响应头中的非法字符

在使用Node.js请求HTTP响应并将其导入到MongoDB时,我注意到一个或两个URL将包含非法字符的标题(因为它们正在使用键),当我尝试导入到MongoDB时,这将导致整个脚本崩溃。 下面是一个例子:

{ "url": "divensurf.com", "statusCode": 200, "headers": { "x-varnish": "2236710953 2236710300", "vary": "Accept-Encoding,Cookie,X-UA-Device", "cache-control": "max-age=7200, must-revalidate", "x-cache": "V1HIT 2", "content-type": "text/html; charset=UTF-8", "page.ly": "v4.0", "x-pingback": "http://divensurf.com/xmlrpc.php", "date": "Thu, 21 Mar 2013 19:40:59 GMT", "transfer-encoding": "chunked", "via": "1.1 varnish", "connection": "keep-alive", "last-modified": "Thu, 21 Mar 2013 19:40:57 GMT", "age": "2" } } 

标题/键"page.ly"会使脚本崩溃,因为它包含非法字符. 。 在将这个文档导入到MongoDB之前,有没有什么方法可以通过删除这些非法字符来清除引用中包含的这个键/头?

以下是我要求回应的代码:

 (function (i){ http.get(options, function(res) { var obj = {}; obj.url = hostNames[i]; obj.statusCode = res.statusCode; obj.headers = res.headers; db.scrape.save(obj); // imports headers into MongoDB }).on('error',function(e){ console.log("Error: " + hostNames[i] + "\n" + e.stack); // prints error stack onto console }) })(i); 

例如,它将从"page.ly""pagely"

编辑:解决。 检查盖尔的答案。

 obj.headers={}; for(var item in res.headers){ obj.headers[ item.replace(/\./,'')] = res.headers[item]; }