0
做了一个express服务器来调用api。我们已经成功地在我们的服务器中请求了JSON对象。我们现在的问题是让它在客户端显示为完整的JSON对象。 json数据在服务器从api请求时被截断。有什么建议么?我试过解析而不是stringify但得到这个错误。JSON响应中断
SyntaxError: Unexpected end of JSON input
at Object.parse (native)
at fetch.then.x (/Users/server.js:26:19)
at process._tickCallback (internal/process/next_tick.js:103:7)
这里是服务器代码与stringify。
var express = require('express');
var fetch = require('node-fetch');
var cors = require('cors');
const util = require('util');
const app = express();
var inflate = require('inflation')
var raw = require('raw-body')
const json = require('body-parser').json();
app.use(cors())
const PORT = 3001
app.listen(PORT,() => {
console.log(`Express server is running on port: ${PORT}!`);
});
app.get('/foo', (req,res) => {
let dataUrl = 'www.apiURL.com/data.json';
fetch(dataUrl)
.then(x => {
console.log(x.body._readableState.buffer.head.data.toString())
let decompressed = inflate(x.body._readableState.buffer.toString());
res.send(JSON.stringify(x.body._readableState.buffer.head.data.toString()));
})
.catch(err => console.log(err))
})
这是客户端代码。
componentDidMount(){
fetch(serverUrl)
.then(res => {
res.json()
.then(body => {
this.setState({
clubData: body
})
console.log(res)
});
})
.catch(err => console.log(err))
为什么数据被切断?当它是字符串形式时无关紧要,因为缓冲区也被切断了。
感谢罗兰我可以更新的答案!尽管我得到了同样的答复。无法弄清为什么JSON会被切断! –
您可以将console.log放在服务器和客户端中,并使用结果更新问题吗? – Rowland