我有一個大物件需要從服務器(nodejs)發送到客戶端。
但每次我嘗試發送時,我都會收到“無效的字串長度”錯誤。而且沒關系,因為物件真的很大。這就是為什么我想將它保存到檔案然后將檔案發送給客戶端。
我不知道物體的深度。物件本身是八叉樹。
我沒有任何將物件保存到檔案的代碼,因為每次我想到這一點時都會導致我對物件進行字串化,后者導致“無效的字串長度”。
這是物件的螢屏截圖。每個q(n)鍵都具有與鍵相同的遞回結構result。

謝謝!
uj5u.com熱心網友回復:
首先嘗試保存在 JSON 檔案中并將 JSON 檔案直接發送到客戶端
const fs = require('fs');
fs.writeFileSync("file_name.json", data);
res.header("Content-Type",'application/json');
res.sendFile(path.join(__dirname, 'file_name.json'));
uj5u.com熱心網友回復:
處理服務器和客戶端之間的大資料傳輸的一個很好的解決方案是流式傳輸資料。
像這樣將結果通過管道傳遞給客戶端。
const fs = require('fs');
const fileStream = fs.createReadStream("path_to_your_file.json");
res.writeHead(206, {'Content-Type': 'application/json'})
fileStream.pipe(response)
或關注此博客,它一次對每個元素進行字串化并將它們連接起來。
我會建議你流式傳輸。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/394570.html
標籤:javascript 节点.js json 目的
上一篇:簡單的if陳述句es6
