2016-04-09 3 views
5

Я пытаюсь создать маршрут, который будет выполнять некоторые операции CRUD на DynamoDB. На высоком уровне, можно понять, как:.Операции CRUD с использованием DynamoDB с expressjs (node ​​js)

  1. Сервер приложения узла работают расслоение плотного (т.е. команда «узел server.js» в настоящее время срабатывает)
  2. Пользователь использует Почтальон из хромированного браузера, чтобы сделать запросы маршрутов.
  3. Пользователь выполняет запрос GET для 'http://localhost:8080/listtablesofdynamodb'.
  4. Конкретный маршрут, связанный с этим URL-адресом, получает удар, который должен выполнять определенную активность dynamodb. (Например, подключение к dynamodb, извлечения имен таблиц и показывать его в методе обратного вызова.)

причина, почему я задаю этот вопрос, потому что я не мог найти соответствующий учебник о том, как сделать dynamodb активность с помощью экспресс-JS из узел. Все, что я мог найти, это консольные приложения на веб-сайте aws, которые мне кажутся мне не полезными. Любая помощь высоко ценится.

ответ

0

к счастью, мне удалось использовать AWS-SDK в моем маршруте. решение имеет два этапа:

  1. Выполнить код в случае EC2 вашего AWS счета и прикрепляется СИА роли, которая позволяет экземпляр EC2 поговорить с dynamodb. (таким образом вам не нужно вводить код жесткого кода в свой код) см. это article.
  2. может ссылаться на приведенный ниже код для начальных строительных лесов.

`

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

ключ доступа требуется

Все, что вам нужно, это сделать й объект DynamoDB для подключения слишком

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

положить это под вашим требуют заявления, включите на сервере. Затем вы можете просто заполнить маршруты, чтобы выполнить операции CRUD.

Чтобы проверить это использовать

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

Это будет список всех таблиц в вашей БД.

для полного источника проверить here

удачи

+0

HI Джо спасибо за ответ. Я считаю, что включение ключа доступа и секрет в код полностью не является выбором для безопасного решения. –

+0

его серверная сторона должна быть защищена ... На любом сайте Wordpress есть пароли базы данных и все виды в бэкэнде, просто сидят в коде. у пользователя нет доступа к этому коду, а не к стороне клиента. –

Смежные вопросы