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