使用 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();
我遇到了一个问题,如果我的 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();