好吧,所以这听起来像一个奇怪的问题。我正在使用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 =
部分
非常感谢任何帮助!
答案 0 :(得分:1)
除非您插入的变量具有双引号作为字符串的一部分,否则您将必须自己在格式字符串中插入它们。例如:
const query = new YQL(`SELECT * FROM weather.forecast WHERE woeid in (SELECT woeid FROM geo.places(1) WHERE text= "${place}")`)
答案 1 :(得分:0)
看起来place变量有问题。你可以试试
console.log(`place: ${place}`);
在初始化查询之前,看看它有什么问题。它可能格式不正确(例如“布鲁姆菲尔德,科罗拉多”),或者根本不包含任何内容。