Получение данных из AWS Dynamodb через API-шлюз с помощью NodeJS Error - PullRequest
0 голосов
/ 15 мая 2018

Я учусь создавать API с использованием API-интерфейсов Amazon Web Services, DynamoDB и Lambda.

Я следил за видео-плейлистом на Youtube.До сих пор я создал желаемую лямбда-функцию, таблицу DynamoDB, а также шлюз API.

Теперь все, что мне нужно сделать, - это создать внешний интерфейс, который отображает мои текущие элементы в таблице, а также запись.

Пока я дошел до этой части здесь .

В видео он использует JavaScript для выполнения запроса ajax и извлечения элементов из таблицы DynamoDB.Я написал тот же запрос ajax с html.

<html>
<head>
    <h1 style="color:rosybrown;">Latest guestbook entries:</h1>
</head>

<body>
    <div id="entries">

    </div>

    <h1>New Entry</h1>
    <form>
        <label for="msg">Message</label>
        <textarea id="msg"></textarea>

        <button id="submitButton">Submit</button>
    </form>

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <script type="text/javascript">
    var API_URL = "someURL/prod/entries";

    $(document).ready(function(){
        $.ajax({
            type: "GET",
            url: API_URL,

            success: function(data){
                $("#entries").html("");

                data.Items.forEach(function(guestbookItem){
                    $("#entries").append("<p>"+guestbookItem+"</p>");
                })
            }
        });
    });
    </script>

</body>

Итак, я собираюсь объяснить свою цель.Цель состоит в том, чтобы отобразить элементы в таблице DynamODB, которую я создал, а также принять новые записи.Он имеет элемент date и message.

Шлюз API имеет ресурс /entries и имеет два метода: GET и POST./prod означает, что он был развернут на этапе производства.

При вызове URL-адреса для метода GET.Я получаю этот вывод

"{\"Items\": [{\"date\": 20180512, \"message\": \"this is my 4th message\"}, {\"date\": 20180513, \"message\": \"I love AWS\"}], \"Count\": 2, \"ScannedCount\": 2, \"ResponseMetadata\": {\"RequestId\": \"SOME_REQUEST_ID\", \"HTTPStatusCode\": 200, \"HTTPHeaders\": {\"server\": \"Server\", \"date\": \"Mon, 14 May 2018 20:32:43 GMT\", \"content-type\": \"application/x-amz-json-1.0\", \"content-length\": \"160\", \"connection\": \"keep-alive\", \"x-amzn-requestid\": \"SOME_REQUEST_ID\", \"x-amz-crc32\": \"2401247050\"}, \"RetryAttempts\": 0}}"

Однако после запуска файла index.html на моем локальном хосте.

Записи не отображаются.Когда я проверил консоль, оказалось, что я получаю следующую ошибку

index.html:33 Uncaught TypeError: Cannot read property 'forEach' of undefined
at Object.success (index.html:33)
at u (jquery.min.js:2)
at Object.fireWith [as resolveWith] (jquery.min.js:2)
at k (jquery.min.js:2)
at XMLHttpRequest.<anonymous> (jquery.min.js:2)

Я не был уверен, что происходит.Items существует в ответе.Я застрял с этим в течение нескольких дней.Если бы кто-нибудь мог указать на то, что мне не хватало, это было бы очень признательно!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...