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);
}
});
}
};
答案 0 :(得分:1)
在您的代码中,您不会在请求中出现错误时添加回调。您可能需要添加try / catch来处理代码中的任何其他问题。
此外,您无需设置callbackWaitsForEmptyEventLoop
,因为除主要请求外,您不会添加额外的活动。
试试这个:
const myMongooseObject = defineThisObject(); // maybe you forgot to define it
const qs = defineThisObjectToo(); // maybe another error
module.exports.callMenu = (event, context, callback) => {
try {
const eventJSON = qs.parse(event.body);
myMongooseObject.findOne({ value: eventJSON.value }, (err, theObject) => {
if (!err) {
newObj = new myMongooseObject();
newObj.message = 'this worked';
// define the newCall object too?
newCall.save((err) => {
if (!err) {
callback(null, { body: 'success' });
} else {
callback(err); // add this
}
});
} else {
callback(err); // add this
}
});
} catch (e) {
callback(e);
}
};