Promisify не является функцией - PullRequest
0 голосов
/ 29 апреля 2020

Я работаю над lex и пытаюсь сохранить пользовательские данные в DynamoDB, используя NodeJS

Вот мой код:

'use strict';

const uuidV1 = require('uuid/v1');
const AWS = require('aws-sdk');
const promisify = require('es6-promisify');
const dynamo = new AWS.DynamoDB.DocumentClient();

module.exports.saveBookingToDatabase = function(Arrival_city, Departure_city, Flight_type, Phone_number){
    console.log('saveBookingToDatabase');

    const item = {};
    item.bookingId = uuidV1();
    item.arrivalCity = Arrival_city;
    item.departureCity = Departure_city;
    item.classType = Flight_type;
    item.phone = Phone_number;

    const params = {
        TableName: 'airstallion',
        Item: item
    };



  const putAsync = promisify(dynamo.put, dynamo);

  return putAsync(params).then(() => {
      console.log(`Saving ticket ${JSON.stringify(item)}`);
      return item;
    })
    .catch(error => {
      Promise.reject(error);
    });
  }

При запуске программа возвращает следующее ошибка

1 Ответ

1 голос
/ 29 апреля 2020

Поскольку библиотека aws -sdk поддерживает обещание, нет необходимости использовать библиотеку es6-promisify. Используя node.js async/await, мы добьемся того же варианта использования.

'use strict';

const uuidV1 = require('uuid/v1');
const AWS = require('aws-sdk');
const dynamo = new AWS.DynamoDB.DocumentClient();

module.exports.saveBookingToDatabase = async function(Arrival_city, Departure_city, Flight_type, Phone_number){
    console.log('saveBookingToDatabase');

    const item = {};
    item.bookingId = uuidV1();
    item.arrivalCity = Arrival_city;
    item.departureCity = Departure_city;
    item.classType = Flight_type;
    item.phone = Phone_number;

    const params = {
        TableName: 'airstallion',
        Item: item
    };

    try {
        let result = await dynamo.put(params)
        console.log(`Saving ticket ${JSON.stringify(item)}`);
    return item;  
    } catch(e) {
        throw (e)
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...