Vấn đề về tác vụ Alexa của Node.js
Tôi hiện đang mã hóa Nhiệm vụ Alexa của Node.js qua AWS Lambda và tôi đang cố gắng mã hóa một hàm nhận thông tin từ API OpenWeather và phân tích cú pháp nó thành một biến được gọi là weather
. Mã liên quan như sau:
var request = require('request');
var weather = "";
function isBadWeather(location) {
var endpoint = "http://api.openweathermap.org/data/2.5/weather?q=" + location + "&APPID=205283d9c9211b776d3580d5de5d6338";
var body = "";
request(endpoint, function (error, response, body) {
if (!error && response.statusCode == 200) {
body = JSON.parse(body);
weather = body.weather[0].id;
}
});
}
function testWeather()
{
setTimeout(function() {
if (weather >= 200 && weather < 800)
weather = true;
else
weather = false;
console.log(weather);
generateResponse(buildSpeechletResponse(weather, true), {});
}, 500);
}
Tôi đã chạy đoạn mã này vô số lần trong Cloud9 và các IDE khác, và nó dường như đang hoạt động hoàn hảo. Tuy nhiên, khi tôi nén nó vào một gói và tải nó lên AWS Lambda, tôi gặp lỗi sau:
{
"errorMessage": "Cannot find module '/var/task/index'",
"errorType": "Error",
"stackTrace": [
"Function.Module._load (module.js:276:25)",
"Module.require (module.js:353:17)",
"require (internal/module.js:12:17)"
]
}
Tôi đã tìm kiếm vô số bài báo và cài đặt module-js, request và nhiều mô-đun Node khác có thể làm cho mã này chạy, nhưng dường như không có gì khắc phục được vấn đề này. Đây là thư mục của tôi, đề phòng:
- planyr.zip
- index.js
- node_modules
- package.json
Có ai biết vấn đề có thể là gì không? Cảm ơn trước.
START RequestId: 46c71292-debf-11e6-a013-1be2c415a9c1 Version: $LATEST Unable to import module 'index': Error at Function.Module._resolveFilename (module.js:325:15) at Function.Module._load (module.js:276:25) at Module.require (module.js:353:17) at require (internal/module.js:12:17) END RequestId: 46c71292-debf-11e6-a013-1be2c415a9c1 REPORT RequestId: 46c71292-debf-11e6-a013-1be2c415a9c1 Duration: 55.76 ms Billed Duration: 100 ms Memory Size: 128 MB Max Memory Used: 16 MB