我收到了来自'请求'的回复使用以下代码:
collection.distinct('id', (err, docs) => {
docs.forEach(id => {
let url = 'url.com/id=' + id
request(url, (error, response, body) => {
var resp = JSON.parse(response.body.replace('._', '_'));
collection2.insert(resp);
});
});
});
response.body返回一个字符串化的JSON,其中包含一些包含句点的字段和属性,例如:
MISC._EXTERIOR_FEATURES": {
"id": 29,
"name": "MISC._EXTERIOR_FEATURES",
"attributes": {
"ROOF_RACK": {
"id": 0,
"name": "ROOF_RACK",
"value": "roof rack"
}
}
代码解释:对于集合中的每个不同的id,请求id为url的url。然后,使用response.body(string),我使用.replace()来"清理"字符串化的JSON,然后我解析它,然后我将它插入到collection2。
错误:
(node:24552) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 33): Error: key MISC._EXTERIOR_FEATURES must not contain '.'
(node:24552) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 34): Error: key MISC._INTERIOR_FEATURES must not contain '.'
(node:24552) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 35): Error: key MISC._EXTERIOR_FEATURES must not contain '.'
(node:24552) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 36): Error: key MISC._INTERIOR_FEATURES must not contain '.'
(node:24552) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 37): Error: key MISC._INTERIOR_FEATURES must not contain '.'
(node:24552) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 38): Error: key MISC._INTERIOR_FEATURES must not contain '.'
(node:24552) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 39): Error: key MISC._EXTERIOR_FEATURES must not contain '.'
答案 0 :(得分:2)
不确定为什么密钥不得包含"。",但您的"替换"仅替换第一次出现。试试regex。
.replace(/\._/g, '_')