收藏
回答

云函数在本地测试成功,云端调试和调用时返回结果为空怎么办?

云函数代码:

// 云函数入口文件
const cloud = require('wx-server-sdk')
const TextToSVG = require('text-to-svg');
const svg2png = require("svg2png");
const textToSVG = TextToSVG.loadSync('FuturaNDforNike365Cn-XBd.ttf');
cloud.init()

// 云函数入口函数
exports.main = async (event, context) => {
  return new Promise((resolve, reject) => {
    const svg1 = textToSVG.getSVG(event.words, {
      x0,
      y0,
      fontSize24,
      anchor'top',
    });
    svg2png(svg1).then(buffer1 => {
      let wordBase64 = "data:image/png;base64," + buffer1.toString('base64');
      let result = {
        data: wordBase64,
        msg"调用成功",
        words: event.words
      }
      console.log(wordBase64);
      resolve(result)
    })
  })
}


本地调试:


调用时返回:

云端测试:

回答关注问题邀请回答
收藏

2 个回答

  • Admin ²º²³
    Admin ²º²³
    2020-04-09

    你得保证云服务器上也能读取这个文件:

    TextToSVG.loadSync('FuturaNDforNike365Cn-XBd.ttf');
    


    否则返回的是空的就会报错must be a non-empty string。

    你本地调试不报错应该是本地有这个文件

    2020-04-09
    有用
    回复 4
    • LMX
      LMX
      2020-04-09
      这个文件我也上传了  但是还是报这个错误
      2020-04-09
      回复
    • Admin ²º²³
      Admin ²º²³
      2020-04-09回复LMX
      那应该是上传后文件改名了,或者是保存的路径不是云函数执行的时文件夹导致读取不到。
      2020-04-09
      回复
    • Admin ²º²³
      Admin ²º²³
      2020-04-09回复Admin ²º²³
      要不就是这个TextToSVG根本就不支持云函数运行吧
      2020-04-09
      回复
    • LMX
      LMX
      2020-04-10回复Admin ²º²³
      我见其他人有用这个组件 , 我放弃了 还是用云函数中转吧
      2020-04-10
      回复
  • 游戏人生
    游戏人生
    2020-04-09

    添加await试下

    exports.main = async (event, context) => {
      return await new Promise((resolve, reject) => {
        const svg1 = textToSVG.getSVG(event.words, {
          x0,
          y0,
          fontSize24,
          anchor'top',
        });
        svg2png(svg1).then(buffer1 => {
          let wordBase64 = "data:image/png;base64," + buffer1.toString('base64');
          let result = {
            data: wordBase64,
            msg"调用成功",
            words: event.words
          }
          console.log(wordBase64);
          resolve(result)
        })
      })
    }
    
    2020-04-09
    有用
    回复 2
    • LMX
      LMX
      2020-04-09
      试了一下还是不可以 我修改了代码 发现报error message "file" argument must be a non-empty string的错误 我怀疑是text-to-svg组件的问题
      2020-04-09
      回复
    • 游戏人生
      游戏人生
      2020-04-09回复LMX
      嗯,如果是组件BUG,要么替换要么修复
      2020-04-09
      回复
登录 后发表内容
问题标签