云开发request问题求答
发布于 6 年前 作者 lzhao 8528 次浏览 来自 问答

exports.main = async (event, context) => {

return new Promise((resolve, reject) => {

let url = ’ ’

request( url, function (error, response, body) {

return resolve(body)

})

})

}

关于云开发发起网络请求 文档说:

Node.js 提供的原生 http 接口在云函数中发起网络请求,我们还可以使用一个流行的 Node.js 网络请求库 request 来更便捷的发起网络请求。

但是这个不知道如何选择使用get或post方法,尤其不知道如何参数传递,百度了很久 node request的get post方法 和两个方法的参数传递 都找不到一个合适的参考。

麻烦给个代码格式参考,展示一下post方法的传参格式 谢谢!!

4 回复

给你一个例子,试试。

1、云函数json文件

{

  “name”: “”,

 ___ “private”: true,//重点在这里,要定义下,不然会报错___

  “version”: “1.0.0”,

  “description”: “”,

  “main”: “index.js”,

  “scripts”: {

    “test”: “echo \“Error: no test specified\” && exit 1”

  },

  “author”: “”,

  “license”: “ISC”,

  “dependencies”: {

    “wx-server-sdk”: “latest”

  }

}

2、云函数js内容

// 云函数入口文件

const cloud = require(‘wx-server-sdk’)

const request = require(‘request’)

const API_URL =  ‘’

cloud.init()

// 云函数入口函数

exports.main = async (event, context) => {

  var url = API_URL

  // return{

  //   event,context

  // }

  return new Promise((resolve, reject) => {

    request.get(url, (error, response, body) => {

      if (error) {

        reject()

      } else {

        try {

          resolve(body)

        } catch (e) {

          reject()

        }

      }

    })

  })

}

//npm install  request-promise

const rp = require(‘request-promise’);

// 云函数入口函数

exports.main = async(event, context) => {

var res = await rp(

{

method: ‘post’,

uri: https://xxxx.com,

body: {

xxx:‘xxx’

},//参数

headers: {},//请求头

json: true  //是否json数据

}

).then((  body) => {

return body

}).catch(err => {

return err;

})

return res;

}

应该和正常的request的post一样吧,我只试过get,是直接在url后面加,post的话你看看这个https://www.jianshu.com/p/a156729ce499

回到顶部