我正在使用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
答案 0 :(得分:0)
我认为parseBody是一个对象,而不是一个数组因此你不能使用foreach,也许试试这个:
for(var key in parseBody){
console.log("result: " + parseBody[key]);
}