代码之家  ›  专栏  ›  技术社区  ›  Swoods23

Yahoo Weather API无法搜索变量

  •  1
  • Swoods23  · 技术社区  · 7 年前

    好吧,这听起来是个奇怪的问题。我正在使用yahoo weather api和discord.js生成天气命令。我使用YQL和Woied尝试让某人进入他们想要搜索的位置。下面是变量搜索:

    const query = new YQL(`SELECT * FROM weather.forecast WHERE woeid in (SELECT woeid FROM geo.places(1) WHERE text= ${place})`)
    

    但是,当我使用变量输入时,它不起作用,并会给出以下错误:

    Cannot read property 'results' of undefined
    

    现在,当我手动输入位置时 想看看,它能用。我的意思是:

    const query = new YQL(`SELECT * FROM weather.forecast WHERE woeid in (SELECT woeid FROM geo.places(1) WHERE text= "Broomfield, Co")`)
    

    请注意,我主要强调 WHERE text = 每个搜索查询的一部分

    任何帮助都将不胜感激!

    2 回复  |  直到 7 年前
        1
  •  1
  •   jaredkwright    7 年前

    除非要插入的变量有双引号作为字符串的一部分,否则必须自己在格式字符串中插入它们。例如:

    const query = new YQL(`SELECT * FROM weather.forecast WHERE woeid in (SELECT woeid FROM geo.places(1) WHERE text= "${place}")`)
    
        2
  •  0
  •   bluecereal    7 年前

    看起来place变量有问题。你可以试试看

    console.log(`place: ${place}`);
    

    在初始化查询以查看它出了什么问题之前。它的格式可能不正确(例如“科罗拉多州布鲁姆菲尔德”),或者根本不包含任何内容。