gpt4 book ai didi

javascript - dynamodb putItem 回调函数不起作用

转载 作者:行者123 更新时间:2023-12-04 13:56:27 28 4
gpt4 key购买 nike

const AWS = require('aws-sdk');
const dynamodb = new AWS.DynamoDB({apiVersion: '2012-08-10'});

exports.handler = async (event) => {

var note = {};
note.noteid = new Date().getTime();
note.content = event.queryStringParameters["content"];

var res = {};

const response = {
statusCode: 200,
body: JSON.stringify(note),
};

var obj = {
'TableName':'notes',
'Item': {
'note_id': {
S: '2'
},
'name': {
S: 'content'
}
},
'ReturnConsumedCapacity': "TOTAL"
};

dynamodb.putItem(obj, function(err,result){
console.log('function called!!');
console.log(err);

return response;
});

};

我的 putItem不工作,回调函数没有被调用。我已经完全访问了这个用户的 Angular 色,但仍然没有调用函数。

最佳答案

假设您使用的是 AWS Lambda。由于您使用的是 async/await模式,http 响应最终是 async (event) => {}返回。在你的情况下,这没什么。您调用putItem但没有等待它。 async (event) => {}之后立即返回任何内容。由于函数已返回,您的 putItem call 没有机会回调。

您应该转换 putItem调用promiseawait为了它。然后处理结果并返回http响应。

const AWS = require('aws-sdk');
const dynamodb = new AWS.DynamoDB({apiVersion: '2012-08-10'});

exports.handler = async (event) => {

var note = {};
note.noteid = new Date().getTime();
note.content = event.queryStringParameters["content"];

var res = {};

const response = {
statusCode: 200,
body: JSON.stringify(note),
};

var obj = {
'TableName':'notes',
'Item': {
'note_id': {
S: '2'
},
'name': {
S: 'content'
}
},
'ReturnConsumedCapacity': "TOTAL"
};

try
{
var result = await dynamodb.putItem(obj).promise();
//Handle your result here!
}
catch(err)
{
console.log(err);
}
return response;
};

关于javascript - dynamodb putItem 回调函数不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54193658/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com