青岛崂山区网站建设,虚拟机网站建设,网站开发 一个页面多少钱,网站建设维护培训班前言
最近在使用node服务#xff0c;http模块调用其他服务的分页接口有时JSON.parse#xff08;#xff09;会报错发现当分页返回json数据过多时#xff0c;会导致控制台输出不全-数据不对-导致JSON.parse#xff08;#xff09;出错查阅资料发现#xff0c;控制台输出…前言
最近在使用node服务http模块调用其他服务的分页接口有时JSON.parse会报错发现当分页返回json数据过多时会导致控制台输出不全-数据不对-导致JSON.parse出错查阅资料发现控制台输出也是相当于开辟了一块空间现在这块空间存不下这么多json数据node有提供内置模块解决方案使用querystring内置模块-把json数据以流的形式输出转换
代码实现
// 导入http模块
const http require(http);// 导入querystring模块
const querystring require(querystring);// 注意基地址
// let base_url https://ceshi.com// 基地址-去掉https://前缀 - 不去会报错
let base_url ceshi.com// post-请求 - 分页查询
// 使用promise - 方便维护和管理
const requestpost () {return new Promise((resolve, reject) {// 请求参数let postData querystring.stringify({// 页码// 页数// 总数// 参数});// 配置项const options {// 基地址hostname: base_url,// 默认端口-不要改port: 80,// 接口路径path: /api/ceshi/list,// 请求方式method: post,// 请求头信息headers: {// 请求参数格式Content-Type: application/json; charsetutf-8,// tokenAuthorization: ,},};// 发送请求const getpost http.request(options, (res) {// 会包装一层data-看打印// console.log(res,res)// 使用JSONStream解析数据// 真正数据data-不然jsonStream.on会执行多次const jsonStream JSONStream.parse(res.data);// 处理解析到的每个对象jsonStream.on(data, (data) {// console.log(打印数据, data);// 全部数据-最外层resolve(data);});// 解析错误jsonStream.on(error, (err) {console.error(err.message);});// 将响应流 - 放到JSONStreamres.pipe(jsonStream);});// 错误处理getpost.on(error, (err) {// 返回失败结果reject(err.message);});// 请求参数-写入getpost.write(postData);// 结束请求-不写请求发送不出去getpost.end();});
}; 总结
经过这一趟流程下来相信你也对 node-使用querystring内置模块解决分页返回数据太多-导致json.parse解析报错 有了初步的深刻印象但在实际开发中我 们遇到的情况肯定是不一样的所以我们要理解它的原理万变不离其宗。加油打工人 有什么不足的地方请大家指出谢谢 -- 風过无痕