提问者:小点点

查询dynamo数据库的node.js函数总是返回未定义


我有下面的函数定义。 本质上,它所做的是查询DynamoDB表并返回相应分区键的deviceID。

GetDeviceIdFromHash: function (id) {
    const params = {
        TableName: process.env.USER_TABLE,
        Key: {
            id: id
        }
    };
    dynamoDb.get(params, function(error, result) {
        // handle potential errors
        if (error) {
            console.log(error);
            return "";
        }
        return result;
    });
}

问题是,无论数据库中是否存在id属性,此函数总是返回undefined

我不能完全确定为什么会发生这种情况。

根据我的预感,我认为这可能与dynamodb.get()是一个异步语句有关,但是我在node.js方面的经验有限,所以我不知道如何继续。


共1个答案

匿名用户

是的,这可能是由于异步执行造成的。 所以你能试着告诉我:

GetDeviceIdFromHash: async function (id) {
    const params = {
        TableName: process.env.USER_TABLE,
        Key: {
            id: id
        }
    };
    let result = await dynamoDb.get(params).promise();
    return result;
}