使用 lambda 函数将数据库抓取为 JSON
Grabbing a database as JSON using a lambda function
我正在使用 dynamo-db 扫描来获取 table 格式的数据库 JSON,但它似乎无法正常工作
var doc = require('dynamodb-doc');
var dynamo = new doc.DynamoDB();
exports.handler = function(event, context) {
dynamo.scan({ 'TableName' : 'DATABASE_NAME' }, function(err, data) {
console.log('this doesnt print');
if (err) console.log(err, err.stack)
else console.log(data);
});
context.succeed('ding');
我根本不相信它正在进入回调函数,因为'this doesnt print'不打印。有任何想法吗?谢谢 :)
您在 DynamoDB 调用完成之前调用 context.succeed()
。您需要了解异步调用在 NodeJS 中的工作方式。尝试这样的事情:
var doc = require('dynamodb-doc');
var dynamo = new doc.DynamoDB();
exports.handler = function(event, context) {
dynamo.scan({ 'TableName' : 'DATABASE_NAME' }, function(err, data) {
console.log('this doesnt print');
if (err) {
console.log(err, err.stack)
context.fail(err);
}
else {
console.log(data);
context.succeed('ding');
}
});
我正在使用 dynamo-db 扫描来获取 table 格式的数据库 JSON,但它似乎无法正常工作
var doc = require('dynamodb-doc');
var dynamo = new doc.DynamoDB();
exports.handler = function(event, context) {
dynamo.scan({ 'TableName' : 'DATABASE_NAME' }, function(err, data) {
console.log('this doesnt print');
if (err) console.log(err, err.stack)
else console.log(data);
});
context.succeed('ding');
我根本不相信它正在进入回调函数,因为'this doesnt print'不打印。有任何想法吗?谢谢 :)
您在 DynamoDB 调用完成之前调用 context.succeed()
。您需要了解异步调用在 NodeJS 中的工作方式。尝试这样的事情:
var doc = require('dynamodb-doc');
var dynamo = new doc.DynamoDB();
exports.handler = function(event, context) {
dynamo.scan({ 'TableName' : 'DATABASE_NAME' }, function(err, data) {
console.log('this doesnt print');
if (err) {
console.log(err, err.stack)
context.fail(err);
}
else {
console.log(data);
context.succeed('ding');
}
});