node项目使用http模块发送get-post请求方式

 更新时间:2024年09月06日 13:39:39   作者:-風过无痕  
这篇文章主要介绍了node项目使用http模块发送get-post请求方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

前言

  • http模块是node.js提供内置模块,可以用来发送请求
  • 使用场景是本身这个node服务就是后端,调用第三方api或者其他服务使用http模块
  • http模块和axios本质上是一个东西,看自己怎么选择使用

代码实现-不能直接复制-看注释

1.请求文件代码

// 导入http模块
const http = require("http");
 
// 注意基地址
// let base_url = "https://ceshi.com"
 
// 基地址-去掉https://前缀 - 不去会报错
let base_url = "ceshi.com"
 
 
// get-请求 - 获取
// 使用promise - 方便维护和管理
const requestget = () => {
  return new Promise((resolve, reject) => {
 
    // 配置项
    const options = {
      // 基地址
      hostname: base_url,
      // 默认端口-不要改
      port: 80,
      // 接口路径
      path: `/api/ceshi/list?参数=${"12"}&参数=${"12"}`,
      // 请求方式
      method: "get",
      // 请求头信息
      headers: {
        // 请求参数格式
        "Content-Type": "application/json; charset=utf-8",
        // token
        Authorization: "",
      },
    };
 
    // 发送请求
    const getlist = http.request(options, (res) => {
      res.on("data", (data) => {
        // 把返回值转换成utf-8格式
        const list = Buffer.from(data).toString("utf8");
        // 输出在控制台-json格式
        process.stdout.write(list);
        // 转换数据
        const getlist = JSON.parse(list);
        // 返回成功结果
        resolve(getlist);
      });
    });
 
    // 错误处理
    getlist.on("error", (err) => {
      // 返回失败结果
      reject(err.message);
    });
 
    // 请求参数-写入
    getlist.write(postData);
 
    // 结束请求-不写请求发送不出去
    getlist.end();
 
  })
}
 
 
 
 
// 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; charset=utf-8",
        // token
        Authorization: "",
      },
    };
 
    // 发送请求
    const getpost = http.request(options, (res) => {
      res.on("data", (data) => {
        // 把返回值转换成utf-8格式
        const list = Buffer.from(data).toString("utf8");
        // 输出在控制台-json格式
        process.stdout.write(list);
        // 转换数据
        const getlist = JSON.parse(list);
        // 返回成功结果
        resolve(getlist);
      });
    });
 
    // 错误处理
    getpost.on("error", (err) => {
      // 返回失败结果
      reject(err.message);
    });
 
    // 请求参数-写入
    getpost.write(postData);
 
    // 结束请求-不写请求发送不出去
    getpost.end();
 
  });
};

2.调用

const { requestget,requestpost } = require("文件位置");
 
async function getpostrequest (){
    // get
    const res = await requestget ()
    console.log("get请求结果", res);
 
    // post
   const ress = await requestpost ()
   console.log("post请求结果", ress);
}

细节

  • 1.注意基地址配置不要带前缀-https:// 会报错
  • 2.port 一般不用动
  • 3.end()方法一定要写,不然请求可能会发不出去
  • 4.不要直接复制这么多-按照注释请求成功在改

总结

经过这一趟流程下来相信你也对 node项目-使用http模块发送get-post请求 有了初步的深刻印象,但在实际开发中我 们遇到的情况肯定是不一样的,所以我们要理解它的原理,万变不离其宗。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • no-vnc和node.js实现web远程桌面的完整步骤

    no-vnc和node.js实现web远程桌面的完整步骤

    这篇文章主要给大家介绍了关于no-vnc和node.js实现web远程桌面的完整步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-08-08
  • 详解nodejs 开发企业微信第三方应用入门教程

    详解nodejs 开发企业微信第三方应用入门教程

    这篇文章主要介绍了详解nodejs 开发企业微信第三方应用入门教程,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-03-03
  • nodejs微信开发之授权登录+获取用户信息

    nodejs微信开发之授权登录+获取用户信息

    这篇文章主要介绍了nodejs微信开发之授权登录+获取用户信息,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-03-03
  • npm does not support Node.js问题的解决办法

    npm does not support Node.js问题的解决办法

    这篇文章主要给大家介绍了关于npm does not support Node.js问题的解决办法,文中通过代码以及图文介绍的非常详细,对大家的学习或者工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-10-10
  • 利用Mongoose让JSON数据直接插入或更新到MongoDB

    利用Mongoose让JSON数据直接插入或更新到MongoDB

    这篇文章主要给大家介绍了利用Mongoose让JSON数据直接插入或更新到MongoDB数据库的相关资料,文中详细介绍了配置Mongoose、创建目录及文件、插入数据,POST提交JSON增加一条记录以及询数据,取出刚增加的记录等内容,需要的朋友可以参考下。
    2017-05-05
  • Node实战之不同环境下配置文件使用教程

    Node实战之不同环境下配置文件使用教程

    这篇文章主要给大家介绍了关于Node实战之不同环境下配置文件使用的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2018-01-01
  • node中如何使用redis的实现

    node中如何使用redis的实现

    本文主要介绍了node中如何使用redis的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-06-06
  • node.js中的path.dirname方法使用说明

    node.js中的path.dirname方法使用说明

    这篇文章主要介绍了node.js中的path.dirname方法使用说明,本文介绍了path.dirname的方法说明、语法、使用实例和实现源码,需要的朋友可以参考下
    2014-12-12
  • nodejs如何解决高并发问题

    nodejs如何解决高并发问题

    这篇文章主要介绍了nodejs如何解决高并发问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-10-10
  • 浅谈nodejs中的类定义和继承的套路

    浅谈nodejs中的类定义和继承的套路

    本篇文章主要介绍了浅谈nodejs中的类定义和继承的套路,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07

最新评论