Javascript 无法将数据从节点服务器发送到ajax

Javascript 无法将数据从节点服务器发送到ajax,javascript,node.js,ajax,Javascript,Node.js,Ajax,在我的服务器文件中,我试图从txt文件发送数据,然后在ajax中接收数据,就像这样 app.get('/send', function(req, res) { showData = fs.readFile('file.txt', 'utf8', function(err, data) { res.send({data:data}) }) }) 它到达了我的ajax代码,我想把它附加到我的html中,但我无法做到 console.log(response.data)

在我的服务器文件中,我试图从txt文件发送数据,然后在ajax中接收数据,就像这样

app.get('/send', function(req, res) {
showData = fs.readFile('file.txt', 'utf8', function(err, data) {
  res.send({data:data})
  })
})
它到达了我的ajax代码,我想把它附加到我的html中,但我无法做到

console.log(response.data)
            response.data.forEach(function(val) {
                console.log(val.id)
                tbodyEl.append('\
                    <tr>\
                        <th class="id">' + val.id + '</th>\
                    </tr>\
                    ')
            })
console.log(response.data)
response.data.forEach(函数(val){
console.log(val.id)
tbodyEl.append('\
\
“+val.id+”\
\
')
})

当我从我的服务器文件发送一个普通的json变量时,它可以工作,但当我尝试使用文本文件时,它不能工作(说TypeError:response.data.forEach不是一个函数)

您包含的代码中有一个输入错误=>
response.dataata

您还需要
JSON.parse()
响应数据


假设您正在运行的代码没有输入错误,并且响应已被解析,您可能面临的另一个问题是文件包含无效的JSON或不包含数组。

如果您希望将forEach保留在Ajax端,另一个解决方案是将
res.send({data:data})
更改为
res.send(data)
。假设数据是一个数组,那么就可以在Ajax端使用
JSON.parse(response).forEach(…)

解析,为什么要使用
forEach
?因为我想循环遍历每个JSON对象并将其附加到“每个JSON”对象?您只收到一个,
数据
,它只包含一个
字符串
。我的意思是我想从json对象内部附加值,但认为我需要循环它们才能执行此操作?更正了输入错误,响应在server.js中解析,它也需要在ajax脚本中解析吗?这里包含的代码不会解析服务器上的文件(我也不会这样做。
JSON.parse()
阻塞节点中的事件循环)。但答案是肯定的,它需要在客户端上解析,然后才能对其进行
forEach