I have a response from 'request' using the following code:
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 returns a stringified JSON with some fields and properties containing a period, for example:
MISC._EXTERIOR_FEATURES": {
    "id": 29,
    "name": "MISC._EXTERIOR_FEATURES",
    "attributes": {
      "ROOF_RACK": {
      "id": 0,
      "name": "ROOF_RACK",
      "value": "roof rack"
    }
}
Code explained: for every distinct id in collection, request the url for id. Then, using response.body (string), I used .replace() to "clean up" the stringified JSON, then I parse it, and I insert it into collection2.
Errors:
(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 '.'
via Moshe
No comments:
Post a Comment