【发布时间】:2017-12-09 17:17:24
【问题描述】:
Lambda 函数没有达到内存限制,也没有超时。我在某处读到它可能会返回,因为事件循环为空,但我将 context.callbackWaitsForEmptyEventLoop 设置为 false。
函数如下:
module.exports.callMenu = (event, context, callback) => {
context.callbackWaitsForEmptyEventLoop = false;
const eventJSON = qs.parse(event.body);
myMongooseObject.findOne({ value: eventJSON.value }, (err, theObject) => {
if (!err) {
newObj = new myMongooseObject();
newObj.message = 'this worked';
newObj.save((err) => {
if (!err) {
callback(null, { body: 'success' });
} else {
console.log(err);
}
});
}
};
【问题讨论】:
-
函数什么也不返回。您是否期望使用特定值调用回调?你在哪里定义“myMongooseObject”和“newCall”?
-
我不明白你的问题,函数应该返回 body:'success'
-
根据您提供的代码,我预计该函数会失败,并显示“无法读取未定义的属性 findOne”。 myMongooseObject 无处定义。如果 .findOne 函数返回错误,它也会超时。如果您添加更可靠的错误处理,您可能会发现问题。
-
好的对不起,我没有明确说明我已经定义了它并且它没有返回任何错误,我认为由于我的问题是可以理解的。如果回调在保存中,它不会返回任何错误,它只会返回 null 。但是在保存之外它不会返回 null。
-
保存是否返回错误?如果确实如此,则永远不会调用回调,并且 lambda 函数默认返回 null。
标签: node.js amazon-web-services asynchronous aws-lambda serverless-framework