nodeJS:forEach循环不是函数,错误

时间:2017-11-24 15:07:52

标签: javascript node.js foreach

我正在使用array.forEach()函数,我收到错误

  

parsedBody.forEach不是函数。

parseBody生成一个值,我在其他方法中使用forEach,该函数运行正常。那么为什么forEach在这种情况下不起作用呢?

编辑:parseBody是一个对象。如何将其变成数组?

(server.js):

console.log('- before request.post');

            request.post({
                url: `${dc_link}/audit`, //includes dc_IP, dc_port and /audit
                headers: 
                    {     
                    "jwt": jwt.sign(token, jwtSecret)
                }
            }, function(error,response,body){  //*
                    console.log('path 0');
                    console.log('error:', error);
                    let parseBody = JSON.parse(body);
                    console.log('parseBody.additionalData', parseBody.additionalData);

                parseBody.forEach(function(element){   //**HERE
                    console.log('path 3');

                });
                }

(的console.log):

[stdout] - before request.post
[stdout] start respondWithJSON
[stderr] /app/server.js:435
[stderr]                parseBody.forEach(function(element, index, array){ //*
[stderr]                          ^
[stderr] TypeError: parseBody.forEach is not a function
[stderr]     at Request._callback (/app/server.js:435:15)
[stderr]     at Request.self.callback (/app/node_modules/request/request.js:188:22)
[stderr]     at emitTwo (events.js:106:13)
[stderr]     at Request.emit (events.js:191:7)
[stderr]     at Request.<anonymous> (/app/node_modules/request/request.js:1171:10)
[stderr]     at emitOne (events.js:96:13)
[stderr]     at Request.emit (events.js:188:7)
[stderr]     at IncomingMessage.<anonymous> (/app/node_modules/request/request.js:1091:12)
[stderr]     at IncomingMessage.g (events.js:286:16)
[stderr]     at emitNone (events.js:91:20)
[stdout] path 0
[stdout] error: null
[stdout] parseBody.additionalData iAAGtYgBAGkCBFoW4F4DARkDAQkDAQUDAQ

1 个答案:

答案 0 :(得分:0)

我认为parseBody是一个对象,而不是一个数组因此你不能使用foreach,也许试试这个:

for(var key in parseBody){
 console.log("result: " + parseBody[key]);
}