簡體   English   中英

如何修復數據未插入本地 dynamodb (NodeJS)

[英]How to fix data not inserting into local dynamodb (NodeJS)

我正在嘗試通過我創建的端點將數據插入本地 dynamoDB,但它不起作用。 promise 本身沒有錯誤日志,似乎 function 被忽略了。

這是一個 helper function 將協助插入數據

require('aws-sdk/index');
const DynamoDB = require('aws-sdk/clients/dynamodb');

const options = {
    apiVersion: '2012-08-10',
    region: 'ap-southeast-1',
    endpoint: 'http://localhost:8000/',
};

const dynamoDBDoc = new DynamoDB.DocumentClient(options);

async function putData(tableName,insertValue) {
    const param = {
        TableName: tableName,
        Item:insertValue,
        ReturnConsumedCapacity: 'TOTAL',
    };

    // Mock data
    // const param = {
    //     TableName: 'user',
    //     Item:{
    //         'user_id':'1234',
    //         'email':'memelorde'
    //     },
    //     ReturnConsumedCapacity: 'TOTAL',
    // };

    try {
        const data = await dynamoDBDoc.put(param).promise();
        console.log("Data successfully entered", data)
        return data;
    } catch (e) {
        console.log(`failed ${e.message}`);
        return false;
    }
}

這是我調用上面的 function 並為其提供要插入的表名的部分

async function createUser(data){
    const tableName = "user"
    data["user_id"]= uuidv4() 
    await dynamoDB.putData("user",data);

    return await dynamoDB.putData(tableName, data);
}

這是我創建的用於傳遞用戶信息的端點

if (event.httpMethod === 'POST') {
     dataset = JSON.parse(event.body)
     console.log('/signup POST req =>', dataset)
     let res = await user.createUser(dataset)
     console.log(res)               
}

預期:如果執行 put function,將會有一個控制台日志記錄成功並將數據插入到表中,如果有錯誤也會記錄錯誤

實際:根本沒有產生錯誤代碼

我遇到了同樣的問題。 我通過將 accessKeyId 和 secretAccessKey 添加到“AWS.DynamoDB.DocumentClient”的配置選項來解決它

const options = {
    accessKeyId: "aaa",
    secretAccessKey: "bbb",
    apiVersion: '2012-08-10',
    region: 'ap-southeast-1',
    endpoint: 'http://localhost:8000/',
};

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM