2016-04-09 10 views
5

Sto provando a creare un percorso che eseguirà alcune operazioni CRUD su DynamoDB. ad alto livello, può essere inteso come:.Operazioni CRUD che utilizzano DynamoDB con expressjs (nodo js)

  1. applicazione server Il nodo js è in esecuzione (ad esempio comando 'server.js nodo' è stato attivato)
  2. L'utente utilizza POSTINO del browser Chrome per fare instradare le richieste.
  3. L'utente fa una richiesta GET per "http://localhost:8080/listtablesofdynamodb".
  4. Viene colpito il percorso specifico collegato a questo URL che dovrebbe eseguire l'attività specifica di dynamodb. (Come il collegamento a DynamoDB, recupero nomi di tabella e mostrarlo in metodo di callback.)

il motivo per cui chiedo a questa domanda è perché non riuscivo a trovare qualche tutorial rilevante di come fare attività DynamoDB utilizzando js espresse nodo. Tutto quello che ho trovato sono le applicazioni console sul sito di aws che non mi sembrano utili. Qualsiasi tipo di aiuto è molto apprezzato.

risposta

0

per fortuna, riuscivo a usare AWS-sdk nel mio percorso. la soluzione ha due fasi:

  1. esegue il codice nella istanza EC2 del tuo account AWS e allegare un ruolo IAM che permette l'istanza EC2 di parlare con DynamoDB. (in questo modo non è necessario il codice di accesso hard-code nel codice) vedere questo article.
  2. può fare riferimento al codice riportato di seguito per il ponteggio iniziale del codice.

`

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

chiave di accesso richiesto

Tutto quello che devi fare è d un oggetto DynamoDB per collegare troppo

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

mettere questo sotto il vostro bisogno dichiarazioni, accendere il server. Quindi puoi semplicemente compilare i percorsi per eseguire le operazioni CRUD di cui hai bisogno.

per testarlo utilizzare

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

Questo elenco di tutte le tabelle nel vostro db.

per sorgente completo controllo here

Buona fortuna

+0

HI Joe grazie per la risposta. Quello che credo è mettere accesskey e secret nel codice non è assolutamente una scelta per avere una soluzione sicura. –

+0

lato server dovrebbe essere sicuro ... Qualsiasi sito wordpress ha password di database e tutti i tipi nel back-end, semplicemente seduto nel codice. nessun utente ha accesso a questo codice, il suo lato non clientente. –