Node.js 承诺不是一种功能
我正在研究lex,并且在使用NodeJS时尝试将用户数据存储在DynamoDB中 这是我的密码:Node.js 承诺不是一种功能,node.js,amazon-web-services,amazon-dynamodb,amazon-lex,Node.js,Amazon Web Services,Amazon Dynamodb,Amazon Lex,我正在研究lex,并且在使用NodeJS时尝试将用户数据存储在DynamoDB中 这是我的密码: '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.saveBooki
'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);
});
}
当我运行程序时,程序返回以下内容,因为aws sdk库支持promise,所以没有必要使用
es6 promisify
库。使用node.jsasync/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)
}
}
是的,谢谢错误再次解决,但新的错误出现了(弃用警告:Deep requirement,如
const uuidv1=require('uuid/v1');
自uuid@7.x)中不推荐使用所需uuid/v1库的方式uuid@7.x库中,从“uuid”将模块导入更新为import{v1 asUUIDV1}代码>有关更多信息签出,此表已创建,但数据未显示在Dynamodb表中,且响应也成功。请检查Dynamodb响应对象,当表中没有条目时,则应存在验证问题或异常。