Node.jsAlexa任务问题
我目前正在编写一个节点。通过AWS Lambda编写js Alexa任务,我一直在尝试编写一个函数,该函数从OpenWeather API接收信息,并将其解析为一个名为weather
的变量。相关代码如下:
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);
}
我在Cloud9和其他IDE中运行了无数次这个片段,它似乎工作得完美无瑕。但是,当我将其压缩到包中并将其上传到AWS Lambda时,我会收到以下错误:
{
"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)"
]
}
我安装了moid-js、Request和许多其他应该使此代码运行的Node模块,但似乎没有什么可以解决这个问题。这是我的目录,以防万一:
- planyr.zip
- index.js
- node_modules
- package.json
有人知道问题是什么吗?
更新到已接受的答案:发生此错误时,表示您的zip文件不是AWS要求的有效形式。
如果您双击zip,您将在您的代码文件中找到您的文件夹,但lambda希望当您双击zip时,它应该显示直接代码文件。
要实现这一点:
open terminal
cd your-lambda-folder
zip -r index.zip *
然后,将index.zip
上传到AWS Lambda。
修复它!我的问题是我试图使用我的Mac在Finder中的内置压缩功能压缩文件。
如果你是一个Mac用户,像我一样,你应该在终端运行以下脚本,当你在你的项目的根目录(文件夹包含你的index.js
,node_modules
等文件)。
zip -r ../yourfilename.zip *
对于Windows:
Compress-Archive -LiteralPath node_modules, index.js -DestinationPath yourfilename.zip
问题内容: Node.js Alexa任务问题 我目前正在通过AWS Lambda编写Node.js Alexa任务的代码,并且一直在尝试编写一个函数,该函数从OpenWeather API接收信息并将其解析为一个名为的变量。相关代码如下: 我在Cloud9和其他IDE中无数次运行了此代码片段,并且该代码片段似乎正常运行。但是,当我将其压缩到一个程序包中并上传到AWS Lambda时,出现以下错误
问题内容: 我已经很长时间没有使用Node.js了,也从未使用过express。当我启动应用程序时,它刚刚返回: 启动test.html时发生错误。这是代码: 我自己的路 : 为什么呢 编辑: 这是我的新app.configure: 但它返回: 问题答案: 我假设test.html是一个静态文件。要渲染静态文件,请像这样使用静态中间件。 这告诉express在应用程序的公共目录中查找静态文件。 指
我刚刚开始使用webpack,很难获得多入口点示例来构建。网页包。配置。示例中的js文件包括以下行 这对我来说是个错误 在四处搜索时,我找到了将CommonChunkPlugin与表达式一起使用的其他示例 失败并出现错误 进一步搜索发现了许多示例,包括 我的构建现在失败了 我不知道该如何进行。
当运行我的项目包时,我有上面的标题错误,在我试图使用 npm安装xml2json 但是,我只有以下错误,你能给我建议或想法,从这个问题中走出来吗... 编辑:: 1 在我安装了更新的Visual Studio 2005到2012后,当我运行npm安装xml2json和npm安装xml2json--unsece-perm时,我得到下面的错误, 提前感谢,戈帕尔·R
运行command:时,出现以下错误: 错误输出:module.js:339 throw err;^错误:在Function.module._resolveFileName(module.js:337:15)在Function.module._load(module.js:287:25)在module.require(module.js:366:17)在require(module.js:385:
问题内容: 我的Node应用程序在本地运行良好,但是在部署到Heroku时遇到错误。该应用程序使用Sequelize在一个文件夹,其中包含,和。在本地,我可以使用中的以下代码导入模型: 这很好,但是,当我部署到Heroku时,应用程序崩溃并显示以下错误: 最初我以为是由于区分大小写(本地mac与heroku linux),但是我移动了文件,进行了git commit,然后又移回并再次提交,以确保在