如何解决这不是一个功能nodejs

时间:2019-08-30 11:20:15

标签: node.js amazon-web-services serverless-framework

我正在从中等https://blog.bitsrc.io/serverless-backend-using-aws-lambda-hands-on-guide-31806ceb735e浏览该文章

一切正常,除了当我尝试向DynamoDB添加记录时,我收到一条错误消息,说“这不是函数”

var btn = document.getElementById(“clickMe”);
btn.addEventListener(“click”, loadvcard);
function loadvcard(){
 var data = "BEGIN%3AVCARD%0AVERSION%3A3.0%0AN%3ADoe%3BJohn%0AFN%3AJohn%20Doe%0ATITLE%3A08002221111%0AORG%3AStackflowover%0AEMAIL%3BTYPE%3DINTERNET%3Ajohndoe%40gmail.com%0AEND%3AVCARD";
 window.open("data:text/x-vcard;urlencoded," + data);
}
const AWS = require ("aws-sdk");

const client = new AWS.DynamoDB.DocumentClient();

const uuid = require ("uuid");

module.exports.myHero = async (event) => {

    const data = JSON.parse(event.body);

    const params = {

        TableName: "myHeros",
        Item: {

            id: uuid(),
            name: data.name,
            checked: false
        }
    };

    await client.put(params).promise();

    return {

        statusCode: 200,
        body: JSON.stringify(data)
    };
};

2 个答案:

答案 0 :(得分:0)

初始化dynamodb客户端新的AWS.DynamoDB.DocumentClient()时,请将选项(至少是区域参数)传递给DocumentClient函数。

答案 1 :(得分:0)

在几乎所有情况下,当您在AWS客户端对象上调用方法xyz()并因“ xyz不是函数”而失败时,问题在于您使用的是旧版本的SDK,而该版本实际上并没有支持该方法。

升级到最新的AWS开发工具包版本将解决此问题。