使用 Nodejs 从 Lambda 从 DynamoDB 放置或获取

Put or Get from a DynamoDB from a Lambda using Nodejs

我遇到了一个问题,如果我的 put 或 get 调用在我的 index.js 文件之外的文件中,我无法使用 DynamoDB 执行任何操作。例如,我的代码结构是在 MVC 类型的框架中。下面我的 exports.handler 在我的 index.js 中,它调用控制器文件夹中的函数。它开始调用,但是当它到达 put 或 get for dynamo 时,它变为空白(控制台日志记录)。没有错误,只是停止。有人 运行 参与其中吗?示例如下。

index.js

const locController = require('./controllers/locationsController');

exports.handler = async(event, context) => {
const routeType ='locations';
const GAID = '1234';

switch(routeType) {
            case "locations":
                response = await locController.getLocations(GAID);
break;
}

/controllers/locationController.js

'use strict';
const AWS = require('aws-sdk');
const documentClient = new AWS.DynamoDB.DocumentClient();

async function getLocations(event, context, callback) {
    var params = {
        Item : {
            "ProfileID": 1234,
            "AppID": 1
        },
        TableName: "Locations"
    };
     await documentClient.put(params).promise();   
}

module.exports = {getLocations};

如果我在函数内部添加console.log,这表明我正在进入函数,它只是在写入table。相同的函数本身放在 index.js 中,工作得很好。

有什么想法吗?

谢谢。

好吧,在我花时间写完这篇文章之后,我发现我是多么盲目。我忘了等待看跌期权。

更改 locationController.js 中的 put 行对我很有效。

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