【问题标题】:AWS Amplify - updating a column in a DynamoDBAWS Amplify - 更新 DynamoDB 中的列
【发布时间】:2018-03-16 17:52:46
【问题描述】:

我试图弄清楚如何使用“aws-amplify”API 更新 Dynamo 表中的列。

没有放大,(仅使用 AWS 开发工具包),可以这样完成:

const docClient = new AWS.DynamoDB.DocumentClient();
let params = {
        TableName:table,
        Key:{
            "year": year,
            "title": title
        },
        UpdateExpression: "set info.rating = :r, info.plot=:p, info.actors=:a",
        ExpressionAttributeValues:{
            ":r":5.5,
            ":p":"Everything happens all at once.",
            ":a":["Larry", "Moe", "Curly"]
        },
        ReturnValues:"UPDATED_NEW"
    };

    docClient.update(params, function(err, data) { ....

我使用此处的文档设置了一个后端/api(启用云 API 来执行 CRUD 操作) https://docs.aws.amazon.com/aws-mobile/latest/developerguide/web-access-databases.html

就创建新记录的“put/get”方法等而言,一切正常

import Amplify, { API } from 'aws-amplify';
....
const path = '/MyTable';
const newRecord = {.......}
const apiResponse = await API.put('MyTableCRUD', path, newRecord);

但是关于更高级技术(如上述更新)的文档很少,我不知道是否/如何使用 Amplify 来实现。

希望有人已经这样做了! 谢谢

【问题讨论】:

    标签: reactjs amazon-web-services aws-sdk aws-amplify


    【解决方案1】:

    您可以在数据库的云 API 中创建自定义路由(通常位于 awsmobilejs/backend/cloud-api/INSERT_TABLE_NAME 下)。除非您过去修改过数据库的云 API,否则指定 API 的所有路由的主文件应该是 awsmobilejs/backend/cloud-api/INSERT_TABLE_NAME/app.js,或者在您的情况下是 awsmobilejs/backend/cloud-api/MyTable/app.js。

    有关在云 API 中创建自定义路由的更多信息和一些示例,请查看 example app's cloud API 和 express API reference。

    【讨论】:

      猜你喜欢
      • 2019-04-21
      • 1970-01-01
      • 2019-10-19
      • 2022-12-14
      • 2019-01-24
      • 2020-11-12
      • 2017-03-12
      • 2023-02-09
      • 1970-01-01
      相关资源
      最近更新 更多