2016-04-09 4 views
5

Ich versuche eine Route zu erstellen, die einige CRUD-Operationen auf DynamoDB durchführt. auf hohem Niveau, kann es als verstanden werden.CRUD-Operationen mit DynamoDB mit expressjs (node ​​js)

  1. Serveranwendung js der Knoten ausgeführt wird (dh Befehl ‚Knoten server.js‘ ausgelöst wird)
  2. Der Benutzer verwendet POSTMAN aus Chrom-Browser zu tun Routenanforderungen Der Benutzer führt eine GET-Anforderung für 'http://localhost:8080/listtablesofdynamodb' aus
  3. Die spezifische Route, die mit dieser URL verbunden ist, wird getroffen, die dynamodb spezifische Aktivität ausführen soll. (Wie DynamoDB verbindet, Tabellennamen zu holen und es in Callback-Methode zeigt.)

der Grund, warum ich mir diese Frage, weil ich keine relevanten Tutorial finden konnte, wie DynamoDB Aktivität zu tun, indem Sie Express.js von Knoten. Alles, was ich finden konnte, sind Konsolenanwendungen auf der aws-Website, die für mich nicht nützlich sind. Jede Art von Hilfe wird sehr geschätzt.

Antwort

0

zum Glück konnte ich verwalten aws-sdk in meiner Route zu verwenden. die Lösung hat zwei Phasen:

  1. den Code ausführen in Ihrem aws Konto der EC2-Instanz und fügen eine IAM-Rolle, die die EC2-Instanz DynamoDB sprechen kann. (Auf diese Weise müssen Sie den Zugriffsschlüssel in Ihrem Code nicht fest codieren), siehe article.
  2. kann Bezug auf den folgenden Code für das erste Code-Gerüst nehmen.

`

var express = require('express'); 
var router = express.Router(); 
var AWS = require("aws-sdk"); 
AWS.config.update({ 
     region: "us-west-2", 
     endpoint: "dynamodb endpoint specific to your aws account" 
}); 
var dynamodb = new AWS.DynamoDB(); 
var params = { 
     ExclusiveStartTableName: "stringvalue", 
     Limit: 10 
}; 
/* GET users listing. */ 
router.get('/', function (req, res) { 
     console.log("entered into dynadb route"); 
     dynamodb.listTables(params, function (err, data) { 
      if (err) console.log(err, err.stack); // an error occurred 
      else { 
        res.send(data); 
      } 
     }); 
}); 
module.exports = router; 

`

2

Zugangsschlüssel erforderlich

Alles, was Sie brauchen, ist ein d DynamoDB Objekt machen dies verbinden zu

var ddb = require('dynamodb').ddb({ accessKeyId: '<your_access_key_id>', secretAccessKey: '<your_secret_access_key>' }); 

Put unter den Anweisungen benötigen, auf Ihrem Server aktivieren. Dann können Sie einfach die Routen ausfüllen, um die benötigten CRUD-Operationen durchzuführen.

es verwenden, um zu testen

ddb.listTables({}, function(err, res) {console.log(res);}); 

Diese alle Tabellen in Ihrer db listet.

für die vollständige Quelle überprüfen here

Best of luck

+0

HALLO Joe Dank für die Antwort. Was ich glaube, Accesskey und Secret in den Code zu stecken, ist absolut keine Wahl für eine sichere Lösung. –

+0

seine Server-Seite sollte es sicher sein ... Jede Wordpress-Website hat Datenbank-Passwörter und alle Arten im Backend, nur im Code sitzen. Kein Benutzer hat Zugriff auf diesen Code, seine Client-Seite überhaupt nicht. –