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」)' - 即將其作爲函數調用的第二個參數。 –