最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

node使用querystring內(nèi)置模塊解決分頁(yè)返回?cái)?shù)據(jù)太多導(dǎo)致json.parse()解析報(bào)錯(cuò)問(wèn)題

 更新時(shí)間:2024年09月06日 09:51:12   作者:-風(fēng)過(guò)無(wú)痕  
這篇文章主要介紹了node使用querystring內(nèi)置模塊解決分頁(yè)返回?cái)?shù)據(jù)太多導(dǎo)致json.parse()解析報(bào)錯(cuò)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

前言

  • 最近在使用node服務(wù),http模塊調(diào)用其他服務(wù)的分頁(yè)接口有時(shí)JSON.parse()會(huì)報(bào)錯(cuò)
  • 發(fā)現(xiàn)當(dāng)分頁(yè)返回json數(shù)據(jù)過(guò)多時(shí),會(huì)導(dǎo)致控制臺(tái)輸出不全-數(shù)據(jù)不對(duì)-導(dǎo)致JSON.parse()出錯(cuò)
  • 查閱資料發(fā)現(xiàn),控制臺(tái)輸出也是相當(dāng)于開(kāi)辟了一塊空間,現(xiàn)在這塊空間存不下這么多json數(shù)據(jù)
  • node有提供內(nèi)置模塊解決方案,使用querystring內(nèi)置模塊-把json數(shù)據(jù)以流的形式輸出轉(zhuǎn)換

代碼實(shí)現(xiàn)

// 導(dǎo)入http模塊
const http = require("http");
 
// 導(dǎo)入querystring模塊
const querystring = require("querystring");
 
// 注意基地址
// let base_url = "https://ceshi.com"
 
// 基地址-去掉https://前綴 - 不去會(huì)報(bào)錯(cuò)
let base_url = "ceshi.com"
 
 
 
 
// post-請(qǐng)求 - 分頁(yè)查詢(xún)
// 使用promise - 方便維護(hù)和管理
const requestpost = () => {
  return new Promise((resolve, reject) => {
 
    // 請(qǐng)求參數(shù)
    let postData = querystring.stringify({
      // 頁(yè)碼
      // 頁(yè)數(shù)
      // 總數(shù)
      // 參數(shù)
    });
 
    // 配置項(xiàng)
    const options = {
      // 基地址
      hostname: base_url,
      // 默認(rèn)端口-不要改
      port: 80,
      // 接口路徑
      path: "/api/ceshi/list",
      // 請(qǐng)求方式
      method: "post",
      // 請(qǐng)求頭信息
      headers: {
        // 請(qǐng)求參數(shù)格式
        "Content-Type": "application/json; charset=utf-8",
        // token
        Authorization: "",
      },
    };
 
    // 發(fā)送請(qǐng)求
    const getpost = http.request(options, (res) => {
      // 會(huì)包裝一層data-看打印
      // console.log('res',res)
      // 使用JSONStream解析數(shù)據(jù)
      // 真正數(shù)據(jù)data-不然jsonStream.on會(huì)執(zhí)行多次
      const jsonStream = JSONStream.parse(res.data);
 
      // 處理解析到的每個(gè)對(duì)象
      jsonStream.on("data", (data) => {
        // console.log("打印數(shù)據(jù)", data);
        // 全部數(shù)據(jù)-最外層
        resolve(data);
      });
      
      // 解析錯(cuò)誤
      jsonStream.on("error", (err) => {
        console.error(err.message);
      });
 
      // 將響應(yīng)流 - 放到JSONStream
      res.pipe(jsonStream);
 
    });
 
    // 錯(cuò)誤處理
    getpost.on("error", (err) => {
      // 返回失敗結(jié)果
      reject(err.message);
    });
 
    // 請(qǐng)求參數(shù)-寫(xiě)入
    getpost.write(postData);
 
    // 結(jié)束請(qǐng)求-不寫(xiě)請(qǐng)求發(fā)送不出去
    getpost.end();
 
  });
};

總結(jié)

經(jīng)過(guò)這一趟流程下來(lái)相信你也對(duì) node-使用querystring內(nèi)置模塊解決分頁(yè)返回?cái)?shù)據(jù)太多-導(dǎo)致json.parse()解析報(bào)錯(cuò) 有了初步的深刻印象,但在實(shí)際開(kāi)發(fā)中我 們遇到的情況肯定是不一樣的,所以我們要理解它的原理,萬(wàn)變不離其宗。

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • windows使用nvm對(duì)node進(jìn)行版本管理切換的完整步驟

    windows使用nvm對(duì)node進(jìn)行版本管理切換的完整步驟

    這篇文章主要介紹了windows使用nvm對(duì)node進(jìn)行版本管理切換的完整步驟,在使用之前各位務(wù)必卸載掉自己安裝過(guò)的nvm或者node版本包括環(huán)境變量之類(lèi)的,要保證自己的電腦完全沒(méi)有node環(huán)境,需要的朋友可以參考下
    2024-03-03
  • socket.io實(shí)現(xiàn)在線(xiàn)群聊功能

    socket.io實(shí)現(xiàn)在線(xiàn)群聊功能

    這篇文章主要為大家詳細(xì)介紹了socket.io實(shí)現(xiàn)在線(xiàn)群聊功能的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • 原生node.js案例--前后臺(tái)交互

    原生node.js案例--前后臺(tái)交互

    本文主要介紹了原生node.js案例--前后臺(tái)交互。本案例包含4部分:(1)HTML部分;(2)ajax部分;(3)JavaScript部分;(4)node服務(wù)器部分。具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧
    2017-02-02
  • 基于nodejs+express4.X實(shí)現(xiàn)文件下載的實(shí)例代碼

    基于nodejs+express4.X實(shí)現(xiàn)文件下載的實(shí)例代碼

    本篇文章主要介紹了詳解nodejs+express4.X的文件下載的實(shí)例代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • 使用nodejs寫(xiě)接口的詳細(xì)步驟

    使用nodejs寫(xiě)接口的詳細(xì)步驟

    這篇文章主要給大家介紹了關(guān)于使用nodejs寫(xiě)接口的詳細(xì)步驟,在Node.js中接口可以采用多種形式,包括函數(shù)接口、對(duì)象接口和事件接口等,需要的朋友可以參考下
    2023-10-10
  • NodeJS學(xué)習(xí)筆記之(Url,QueryString,Path)模塊

    NodeJS學(xué)習(xí)筆記之(Url,QueryString,Path)模塊

    今天我們來(lái)看一下在nodejs中路徑的相關(guān)操作方法。在我們開(kāi)發(fā)過(guò)程中路徑主要有:URL路徑,在瀏覽器中進(jìn)行使用,當(dāng)然這個(gè)也包含查詢(xún)字符串QueryString的相關(guān)操作;而另一種是磁盤(pán)路徑,主要用于文件等等進(jìn)行操作,我們稱(chēng)為Path,所以我將它們放在一起進(jìn)行總結(jié)學(xué)習(xí)。
    2015-01-01
  • Nodejs實(shí)現(xiàn)的一個(gè)簡(jiǎn)單udp廣播服務(wù)器、客戶(hù)端

    Nodejs實(shí)現(xiàn)的一個(gè)簡(jiǎn)單udp廣播服務(wù)器、客戶(hù)端

    這篇文章主要介紹了Nodejs實(shí)現(xiàn)的一個(gè)簡(jiǎn)單udp廣播服務(wù)器、客戶(hù)端,本文直接給出實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2014-09-09
  • 搭建一個(gè)nodejs腳手架的方法步驟

    搭建一個(gè)nodejs腳手架的方法步驟

    這篇文章主要介紹了如何搭建一個(gè)nodejs腳手架的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • Nodejs使用dgram模塊創(chuàng)建UDP服務(wù)詳解

    Nodejs使用dgram模塊創(chuàng)建UDP服務(wù)詳解

    這篇文章主要為大家介紹了Nodejs使用dgram模塊創(chuàng)建UDP服務(wù)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-10-10
  • 使用Node實(shí)現(xiàn)Git倉(cāng)庫(kù)批量克隆的操作步驟

    使用Node實(shí)現(xiàn)Git倉(cāng)庫(kù)批量克隆的操作步驟

    分享一個(gè)node腳本,通過(guò)調(diào)用gitee的OpenApi獲取自己的代碼倉(cāng)庫(kù)列表,達(dá)到批量克隆項(xiàng)目的效果,文中通過(guò)代碼示例和圖文講解的非常詳細(xì),感興趣的小伙伴可以參考閱讀一下
    2024-04-04

最新評(píng)論

澳门| 朔州市| 泽库县| 丹棱县| 崇信县| 女性| 保亭| 台东县| 深水埗区| 金坛市| 临西县| 石嘴山市| 屯门区| 乐昌市| 海口市| 连江县| 维西| 南阳市| 黄冈市| 延庆县| 奉节县| 韶关市| 丹阳市| 波密县| 固始县| 正蓝旗| 蕉岭县| 巢湖市| 会理县| 古田县| 五家渠市| 闽侯县| 福海县| 东丰县| 孟津县| 桐梓县| 通渭县| 林西县| 大同市| 新乐市| 宜都市|