收藏
回答

云函数本地调试没有问题,上传到云端就会报错。这是为什么?


下图为报错信息:

最后一次编辑于  2019-12-30
回答关注问题邀请回答
收藏

2 个回答

  • o0o有脾气的酸奶
    o0o有脾气的酸奶
    2019-12-30

    不知道行不行,试试吧

    exports.main = async (event, context) => {
      var option = {
        headers: {
          'Accept': '*/*',
          'Accept-Encoding': 'utf-8',
          'Accept-Language': 'zh-CN,zh;q=0.8',
          'Connection': 'keep-alive',
          'user-agent': 'Mozilla/5.0 (Linux; Android 5.0; SM-G900P Build/LRX21T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Mobile Safari/537.36',
        }
      };
      return await new Promise((resolve, reject) => {
        try {
    		https.get(event.url, option, (res) => {
    			var contont = '', location = res.headers.location
    			res.on('data', (chunk) => {
    				contont += chunk
    			});
    			res.on('end', () => {
    				resolve({location,contont})
    			});
    		}).on('error', (e) => {
    			reject(e)
    		});
        } catch (e) {
          reject(e)
        }
      })
    }
    
    2019-12-30
    赞同
    回复 1
    • 发飙的蜗牛
      发飙的蜗牛
      2019-12-31
      还是不行。 我也很纳闷为什么!要哭了~
      2019-12-31
      回复
  • 老张
    老张
    2019-12-30

    至少先调通一个最简单的云函数吧?然后再慢慢添加代码。

    2019-12-30
    赞同
    回复 5
    • 发飙的蜗牛
      发飙的蜗牛
      2019-12-30
      这个挺简单的。 本地可以,上传到云函数就不行。
      2019-12-30
      回复
    • 发飙的蜗牛
      发飙的蜗牛
      2019-12-30回复发飙的蜗牛
      // 云函数入口文件
      const cloud = require('wx-server-sdk')
      const https = require('https');
      cloud.init()

      // 云函数入口函数
      exports.main = async (event, context) => {
        var option = {
          headers: {
            'Accept': '*/*',
            'Accept-Encoding': 'utf-8',
            'Accept-Language': 'zh-CN,zh;q=0.8',
            'Connection': 'keep-alive',
            'user-agent': 'Mozilla/5.0 (Linux; Android 5.0; SM-G900P Build/LRX21T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Mobile Safari/537.36',
          }
        };
        await new Promise((resolve, reject) => {
          try {
            https.get(event.url,option, (res) => {
              return resolve(res.headers.location)
            })
          } catch (e) {
            return reject(e)
          }
        })
      }
      2019-12-30
      回复
    • 老张
      老张
      2019-12-30回复发飙的蜗牛
      本地和网络涉及到环境不同时,报错难道不是大概率事件吗?本地调试应该主要用来调逻辑。
      2019-12-30
      回复
    • 发飙的蜗牛
      发飙的蜗牛
      2019-12-30回复老张
      大概率的报错,目前解决不了!才来提问的!
      2019-12-30
      回复
    • 老张
      老张
      2019-12-30回复发飙的蜗牛
      把https换成promise-request试试,大家都用它。
      2019-12-30
      回复
登录 后发表内容
问题标签