简体   繁体   中英

Unable to parse mongodb json response- javascript

I am trying to get some specific field from mongodb json response throught my node.js get request. But it gives me undefiend.

    app.get('/continueDiscovery', addon.authenticate(), function(req, res) {
    console.log("Calling to getAllDiscovery")
    productDiscovery.find(function (err, data){

        if (err)
            res.send(err)

        var data = JSON.stringify(data);

        var jsonData = JSON.parse(data)
        console.log("Getting all data")
        console.log(jsonData.productName)

        console.log(data)

        res.render('continueDiscovery', {continueDiscovery: data });
    });
});

console.log(data) prints

[{"_id":"56989b14814fa7f664000001","__v":0},{"_id":"56989d302e88c32c0a000001","__v":0},{"_id":"56989d6373c4163010000001","__v":0},{"_id":"5698a5a03fb53c451e000001","__v":0},{"_id":"5698a5b23fb53c451e000002","__v":0},{"_id":"5698a65e5978b95b27000001","__v":0},{"_id":"5698a66b5978b95b27000002","__v":0},{"_id":"5698aac4973c3b9864000001","__v":0},{"_id":"5698ac666a9411e70f000001","__v":0},{"_id":"5698ac906a9411e70f000002","__v":0},{"_id":"5698bc34d7b926f518000001","__v":0},{"_id":"5698bc83c123996720000001","__v":0},{"_id":"5698bd57e356ef2b26000001","__v":0},{"_id":"5698bf9ef45490fd54000001","__v":0},{"_id":"5698c009636c05615c000001","__v":0},{"_id":"5698c04d4391848a60000001","__v":0},{"_id":"5698c068d760666863000001","__v":0},{"_id":"5698c0b7ce51651468000001","__v":0},{"_id":"5698c1124b365c3d6f000001","__v":0},{"_id":"5698c1331d0d460872000001","__v":0},{"_id":"5698c14f1d0d460872000002","__v":0},{"_id":"5698c470bfc2076c2a000001","__v":0},{"_id":"5698c487bc25c41a2e000001","__v":0},{"_id":"5698c4e7c71b3d7633000001","__v":0},{"_id":"5698c51887c28f5c36000001","__v":0},{"_id":"5698c5d34981174643000001","__v":0},{"_id":"5698cbf39eda14852c000001","__v":0},{"_id":"5698cc653753891c33000001","__v":0},{"_id":"5698ccd080698b5d3b000001","__v":0},{"_id":"5698cd0926cad98340000001","__v":0},{"_id":"5698d21a0e2c9a6715000001","__v":0},{"_id":"5698d31a0f410ec925000001","__v":0},{"_id":"5698d589f3a2fbb63c000001","__v":0},{"_id":"5698d92bb34a3e4867000001","productName":"ewfewf","endUsers":"ewfewfew","__v":0},{"_id":"5698d92db34a3e4867000002","productName":"ewfewf","endUsers":"ewfewfew","__v":0},{"_id":"5698d92db34a3e4867000003","productName":"ewfewf","endUsers":"ewfewfew","__v":0},{"_id":"5698d92db34a3e4867000004","productName":"ewfewf","endUsers":"ewfewfew","__v":0},{"_id":"5698d92eb34a3e4867000005","productName":"ewfewf","endUsers":"ewfewfew","__v":0},{"_id":"5698d92eb34a3e4867000006","productName":"ewfewf","endUsers":"ewfewfew","__v":0},{"_id":"5698d92eb34a3e4867000007","productName":"ewfewf","endUsers":"ewfewfew","__v":0},{"_id":"5698d92eb34a3e4867000008","productName":"ewfewf","endUsers":"ewfewfew","__v":0},{"_id":"5698d92eb34a3e4867000009","productName":"ewfewf","endUsers":"ewfewfew","__v":0},{"_id":"5698d955b34a3e486700000a","productName":"alokwa re","endUsers":"ewfewfew","__v":0},{"_id":"5698da92596d27f625000001","productName":"re alokwa","endUsers":"re userwa","problemsArea":"re problemwa","productKind":"re productwa","problemSoln":"re solutionwa","competitors":"re competitorwa","__v":0},{"_id":"569ca2ec2a0078bf67000001","productName":"Car Pooling","endUsers":"Car Pooling","problemsArea":"Car Pooling","productKind":"Car Pooling","problemSoln":"Car Pooling","competitors":"Car Pooling","__v":0},{"_id":"569ca75b81c7427376000001","productName":"Hola bhola","endUsers":"Hola bhola","problemsArea":"Hola bhola","productKind":"Hola bhola","problemSoln":"Hola bhola","competitors":"Hola bhola","__v":0},{"_id":"569ca7cee76ffc330d000001","productName":"Hola bhola","endUsers":"Hola bhola","problemsArea":"Hola bhola","productKind":"Hola bhola","problemSoln":"Hola bhola","competitors":"Hola bhola","__v":0},{"_id":"569ca8371fb843c816000001","productName":"ttereeter","endUsers":"ewweewkewkl","problemsArea":"kleklewklkl","productKind":"lklklewrkkl","problemSoln":"lkrlklkewkl","competitors":"lkklrlkerwlk","__v":0}]

but when I am trying to access any specific value with console.log(jsonData.productName) it gives me undefined on console

Fist of all, jsonData is an Array , so you need to access specific element first (ie jsonData[0] ).

Also productName is only defined for some of the array elements, so it will still be undefined for jsonData[0].productName .

So try to find specific element of the array first, and then access its productName property.

响应基本上是使用此参数访问的对象数组

jsonData[0]._id
  • You are receiving an Array .

  • Only few of the objects in that array contains property ' productName '

So your code would be like :

for(var i=0 ;i<yourArray.length;i++){  'yourArray' is the response that you recieve
 var obj = yourArray[i];

 if(obj.productName){
   // handle code when Object has 'productName' property
 }else{
   // handle code when Object does not have 'productName' property
 }
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM