promise简单封装post请求,并在node.js接口内使用请求数据

最近在尝试写node接口,其中有一个接口要调用外部接口获取数据,于是就有了下面的代码

1、安装request模块

npm install request -S

2、封装公用方法 requestFunc.js

//引入
const request = require('request');

var requestFunc = {
    get(url) {
        return new Promise(function(resolve,reject) {
            request(url, function(err, response, body){
                //err 当前接口请求错误信息
                //response 一般使用statusCode来获取接口的http的执行状态
                //body 当前接口response返回的具体数据 返回的是一个jsonString类型的数据 
                //需要通过JSON.parse(body)来转换
                if(!err && response.statusCode == 200){
                    resolve(body)
                }else {
                    reject(body)
                }
            })
        })
    },
    post(url,params) {
        return new Promise(function(resolve, reject) {
            var requestData = params
            request({
                url: url,
                method: "POST",
                json: true,
                headers: {
                    "content-type": "application/json",
                },
                body:requestData
            }, function (error, response, body) {
                if (!error && response.statusCode == 200) {
                    resolve(body)
                }else {
                    reject(body)
                }
            });
        })
        
    }

};
module.exports = requestFunc;

3、使用

const { requestFunc } = require('../../utils');
const url = ' http://******'
const params = {
   text: ""
}
requestFunc.post(url,params).then((res)=> {
    console.log(res)
})

注:post方法亲测可用,get方法没合适的接口测 可测试后使用~

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Node.js中,请求封装是指将HTTP请求的发送和处理进行封装,以便于开发者更方便地发送和处理HTTP请求。以下是一种常见的Node.js请求封装方式: 1. 使用第三方库:Node.js中有很多第三方库可以用来封装HTTP请求,其中比较常用的是`axios`和`request`。这些库提供了简洁的API,可以轻松地发送GET、POST等各种类型的请求,并处理响应。 2. 创建一个封装函数:你也可以自己创建一个封装函数来发送HTTP请求。这个函数可以接收请求的URL、请求方法、请求头、请求体等参数,并返回一个Promise对象,用于处理响应结果。 下面是一个简单的示例代码,演示了如何使用`axios`库进行请求封装: ```javascript const axios = require('axios'); async function sendRequest(url, method, headers, data) { try { const response = await axios({ url: url, method: method, headers: headers, data: data }); return response.data; } catch (error) { throw new Error(error.message); } } // 使用示例 const url = 'https://api.example.com/users'; const method = 'GET'; const headers = { 'Content-Type': 'application/json' }; const data = { username: 'example' }; sendRequest(url, method, headers, data) .then(response => { console.log(response); }) .catch(error => { console.error(error); }); ``` 这个示例中,`sendRequest`函数接收URL、请求方法、请求头和请求体作为参数,使用`axios`发送HTTP请求,并返回响应结果。你可以根据自己的需求进行修改和扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值