Javascript Node.js+;λ+;导致范围错误的请求模块
我有一个问题,我找不到解决方案让我的代码再次运行 我正在使用Node.js和Lambda为Amazon Echo编写一个技巧 首先,必要的代码:Javascript Node.js+;λ+;导致范围错误的请求模块,javascript,node.js,amazon-web-services,lambda,request,Javascript,Node.js,Amazon Web Services,Lambda,Request,我有一个问题,我找不到解决方案让我的代码再次运行 我正在使用Node.js和Lambda为Amazon Echo编写一个技巧 首先,必要的代码: var handlers = { "getLast": function () { var speechOutput = ""; var time = ""; var message = ""; var tower = ""; var request = require
var handlers = {
"getLast": function () {
var speechOutput = "";
var time = "";
var message = "";
var tower = "";
var request = require('request');
var url = "mylink";
request({
url: url,
json: true
}, function (error, response, body) {
if (!error && response.statusCode === 200) {
var obj = JSON.parse(body); // Print the json response
tower = obj.tower;
message = obj.message;
time = obj.time;
}
})
var date_split = time.split(" ");
var time_split = date_split[1].split(":");
var message_split = message.split(":");
if(message_split[1] == "-" || message_split[1] == " -"){
speechOutput = "text";
}else{
speechOutput = "text";
}
this.emit(':tellWithCard', speechOutput, skillName, speechOutput);
}
other stuff
Lambda中的测试导致以下错误:
{
"errorMessage": "Maximum call stack size exceeded",
"errorType": "RangeError",
"stackTrace": [
"initParams (/var/task/node_modules/request/index.js:36:5)",
"new request (/var/task/node_modules/request/index.js:48:16)",
"new request (/var/task/node_modules/request/index.js:54:10)",
"new request (/var/task/node_modules/request/index.js:54:10)",
"new request (/var/task/node_modules/request/index.js:54:10)",
"new request (/var/task/node_modules/request/index.js:54:10)",
"new request (/var/task/node_modules/request/index.js:54:10)",
"new request (/var/task/node_modules/request/index.js:54:10)",
"new request (/var/task/node_modules/request/index.js:54:10)",
"new request (/var/task/node_modules/request/index.js:54:10)"
]
}
请求模块的index.js中发生错误:
'use strict'
var extend = require('extend')
, cookies = require('./lib/cookies')
, helpers = require('./lib/helpers')
var paramsHaveRequestBody = helpers.paramsHaveRequestBody
// organize params for patch, post, put, head, del
function initParams(uri, options, callback) {
if (typeof options === 'function') {
callback = options
}
var params = {}
if (typeof options === 'object') {
extend(params, options, {uri: uri})
} else if (typeof uri === 'string') {
extend(params, {uri: uri})
} else {
extend(params, uri)
}
params.callback = callback || params.callback
return params
}
function request (uri, options, callback) {
if (typeof uri === 'undefined') {
throw new Error('undefined is not a valid uri or options object.')
}
var params = initParams(uri, options, callback)
if (params.method === 'HEAD' && paramsHaveRequestBody(params)) {
throw new Error('HTTP HEAD requests MUST NOT include a request body.')
}
return new request.Request(params)
}
有人知道这里发生了什么吗
谢谢你的帮助 你能把Lambda的全部代码贴在这里吗?这将有助于理解第54行发生的事情嘿,我已经更新了我的问题并添加了一些代码。错误发生在请求模块的index.js中。所以在我看来,这与我的代码无关。但我不明白我能做什么。感谢您的帮助。嘿@mark96,代码中有一个bug导致您正在使用的模块中抛出异常是很常见的。这并不一定意味着模块有问题。如果模块有一个默认的堆栈大小,您的脚本超过了它,我希望看到类似这样的情况。你的Lambda还有代码吗。我觉得这里的代码比我们现在看到的要多。你能把整个Lambda代码发布在这里吗?这将有助于理解第54行发生的事情嘿,我已经更新了我的问题并添加了一些代码。错误发生在请求模块的index.js中。所以在我看来,这与我的代码无关。但我不明白我能做什么。感谢您的帮助。嘿@mark96,代码中有一个bug导致您正在使用的模块中抛出异常是很常见的。这并不一定意味着模块有问题。如果模块有一个默认的堆栈大小,您的脚本超过了它,我希望看到类似这样的情况。你的Lambda还有代码吗。我觉得代码比我们看到的要多。