0
我正在创建一个Alexa技能(Lambda函数)node.js - 我有一个问题传递给getLocation回调函数的“zipcode”常量,如果我输出它将工作的邮编。Node.js参数没有传递给回调函数
getLocation函数它没有返回任何东西,我猜测这是因为邮政编码参数没有正确传递到函数中。
没有什么不对的功能,因为如果我更换
VAR URL = “本地主机/ api.php邮编=?” +邮编;
与
VAR URL = “?本地主机/ api.php拉链= 41242”;或任何工作的邮政编码。
我在做什么错了?
let zipcode = request.intent.slots.zipcode.value;
getLocation(function(location, err) {
if(err) {
context.fail(err);
} else {
options.speechText += location.distance + " miles away,
You can get there by going to " + location.street_address + " in " + location.city + ", " + location.state;
options.endSession = true;
context.succeed(buildResponse(options));
}
});
function getLocation(callback, zipcode) {
var url = "localhost/api.php?zip="+zipcode;
var req = http.get(url, function(res) {
var body = "";
res.on('data', function(chunk) {
body += chunk;
});
res.on('end', function() {
body = body.replace(/\\/g, '');
var location = JSON.parse(body);
callback(location);
});
res.on('error', function(err) {
callback('', err);
});
}); }
当你调用* *的getLocation你只传递一个参数 - 回调 - 这样的*邮编*参数永远是*不确定*。 –
@JulianGoacher我应该怎么处理呢? – koepitz
好吧,如果邮政编码类似“abc123”,那么你想把函数调用改成'getLocation(function(location,err){/ * ... callback code ... * /,“abc123”)' - 即将其作为函数调用的第二个参数。 –