Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript nodeJS:forEach循环不是函数,错误_Javascript_Node.js_Foreach - Fatal编程技术网

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

Javascript nodeJS:forEach循环不是函数,错误,javascript,node.js,foreach,Javascript,Node.js,Foreach,我正在使用array.forEach()函数,我得到一个错误 parsedBody.forEach不是函数 parseBody生成一个值,我在其他方法中使用了forEach,函数运行良好。那么为什么在这种情况下,forEach不起作用呢 编辑:parseBody是一个对象。如何将其转换为数组 (server.js): (console.log): [stdout]-before request.post [stdout]使用JSON启动响应 [stderr]/app/server.js:43

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

parsedBody.forEach不是函数

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

编辑:parseBody是一个对象。如何将其转换为数组


(server.js):


(console.log):

[stdout]-before request.post
[stdout]使用JSON启动响应
[stderr]/app/server.js:435
[stderr]parseBody.forEach(函数(元素、索引、数组){//*
[stderr]^
[stderr]类型错误:parseBody.forEach不是函数
[stderr]应请求返回(/app/server.js:435:15)
[stderr]at Request.self.callback(/app/node_modules/Request/Request.js:188:22)
[stderr]在emitTwo(events.js:106:13)
[stderr]at Request.emit(events.js:191:7)
[stderr]应请求。(/app/node_modules/Request/Request.js:1171:10)
[stderr]在emitOne(events.js:96:13)
[stderr]at Request.emit(events.js:188:7)
[stderr]输入消息。(/app/node_modules/request/request.js:1091:12)
[stderr]位于IncomingMessage.g(events.js:286:16)
[stderr]在emitNone(events.js:91:20)
[stdout]路径0
[stdout]错误:null
[stdout]parseBody.additionalData iaagtygbagkcbfow4f4darkdaqkdaqdaq

由于您使用点符号访问parseBody,因此它似乎是一个对象。您需要一个数组来使用forEach方法。将parseBody转换为数组,问题就解决了

要将其转换为阵列,有一种可能的解决方案:

  var arr = Object.keys(parseBody).map(function(key){ return parseBody[key]; });

我认为parseBody是一个对象而不是数组,因此您不能使用foreach,或许可以尝试以下方法:

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

如果
parsedBody
是数组(
parsebody instanceof Array
或类似的东西),我猜parsebody不是数组检查@Andreas他试图解码
parsebody
,而不是
parsebody。其他数据
如何将parsebody对象转换为数组。我尝试使用parsebody.toArray(Array\u result)=>{array_result.forEach((element)=>{console.log('path 3');});但它不起作用。
  var arr = Object.keys(parseBody).map(function(key){ return parseBody[key]; });
for(var key in parseBody){
 console.log("result: " + parseBody[key]);
}