nodejs封装request请求

var Global = require('./config');
var request = require('request')
let co = require('co');

function httpRequest(method, url, data) {
  // 封装request请求 post get
  var requestUrl = Global.xcontractUrl + url;
  console.log(requestUrl, "真实的java接口地址")
  if (method == "get") {
    return function (cb) {
      try {
        // console.log(`request ${this.id} has been sent at: ${start}` );
        request({
            url: requestUrl,
            method: "GET",
            data
          },
          function (error, response, body) {
            var data = JSON.parse(body)
            cb(null, data);
          }
        )
      } catch (err) {
        commonLog.error('response data error', err);
        logInfo.error('response data error', err);
        cb(err, null)
      }
    }.bind(this);
  } else if (method == "post") {
    return function (cb) {
      try {
        request({
          url: requestUrl,
          method: "POST",
          form: data
        }, function (error, response, body) {
          var data = JSON.parse(body)
          cb(null, data);
        });
      } catch (err) {
        commonLog.error('response data error', err);
        logInfo.error('response data error', err);
        cb(err, null)
      }
    }.bind(this)

  }
}
module.exports = httpRequest;
var express = require('express');
var router = express.Router();
var co = require('co');
var httpRequest = require('./../lib/request')
/* GET users listing. */
router.get('/getCode', function (req, res, next) {
  co(function *(){
    let result = yield httpRequest("get", "/common/getCode", req.query);
    res.json(result);
  });

});

module.exports = router;

promise的实现方法,待验证:

var httpRequest = require('./../config/httpRequest')

/* GET users listing. */
router.get('/search', function (req, res, next) {
  var url = "https://www.apiopen.top/satinApi";
  var data = req.query
  async function getData() {
    var obj = await httpRequest('get', url, data);
    console.log(8888, obj.code)
    res.json(obj)
  }
  getData()
});


//封装的方法
var Global = require("./global");
var request = require('request')
console.log(Global, "Global")
function httpRequest(method, url, data) {
    // 封装request请求 post get
    var requestUrl = Global.webapi + url;
    console.log(requestUrl, "真实的java接口地址")
    if (method == "get") {
        return new Promise(function (resolve, reject) {
            request({
                url: url,
                method: "GET",
                form: data
            }, function (err, response, body) {
                var data = JSON.parse(body)
                console.log(data.code, 222)
                resolve(data)
                //   res.json(data)
            })
        })
    } else if (method == "post") {
        return new Promise(function (resolve, reject) {
            request({
                url: url,
                method: "POST",
                form: data
            }, function (err, response, body) {
                var data = JSON.parse(body)
                console.log(data.code, 222)
                resolve(data)
                //   res.json(data)
            })
        })
    }
}
module.exports = httpRequest;

猜你喜欢

转载自blog.csdn.net/lbPro0412/article/details/85340164