Где я должен определить DocumentClient при использовании ExpressJs? - PullRequest
0 голосов
/ 17 мая 2019

Я не мог найти ответ на то, что мне интересно.

С Mysql в Expressjs, когда я объявлял соединение MySQL в функции обработки сообщений, оно создавало новое соединение каждый раз, когда мой сервер ExpressJs получал запрос. Затем сервер выдаст ошибку, когда будет установлено максимальное количество соединений между сервером обработки и сервером базы данных.

Мне было интересно, есть ли такая же проблема с DynamoDB.DocumentClient ()? Как лучше всего выполнять операции с DynamoDB?

Должен ли я иметь глобальный DocumentClient, как показано ниже, или это нормально, если я оставлю его в функциях post / get?

...
// DocumentClient is out of the post function below
const docClient = new AWS.DynamoDB.DocumentClient();

router.post('/loglogbaby', function(req, res){
    var params = { ... };

    docClient.get(params, function(err,data){...});

    req.json({response:"nonobaby"});
}
...

Ответы [ 2 ]

2 голосов
/ 17 мая 2019

Ну, это не имеет значения, потому что DynamoDB работает с HTTP запросами сзади, а не с соединениями и пулами и т. Д. DocumentClient создает HTTP-запрос в конце. Это библиотека, чтобы сделать low level api проще. ( Смотри здесь ).

Таким образом, в основном вы создаете объект уровня программирования каждый раз, когда создаете его. Не новые связи. И объекты дешевы в создании.

0 голосов
/ 17 мая 2019

Поскольку AWS DynamoDB уже является размещенной службой, проблем с созданием объекта DocumentClient не возникает. Это хорошая практика, если вы создаете глобальный объект для него.

Вы можете найти здесь сравнение между MySQL и DyanmoDB.

...