Ошибка Vogels DynamoDB для перехода на более новые API
Я использую маппер данных Vogels DynamoDB для node.js - и мне было очень тяжело работать в DynamoDB (на AWS). Для локального DynamoDB проблем нет - он устанавливает схему и отлично работает в приложении node.js.
Однако при развертывании на AWS - появляется следующая ошибка:
Details:Error: define no longer accepts schema callback, migrate to new api
Дело в том, что я использую последнюю версию Vogels ( https://github.com/ryanfitz/vogels)
Так почему же говорится о переходе на новый API?
1 ответ
callback
в define
был удален в Vogels 2.0: https://github.com/ryanfitz/vogels/commit/6d5e70e4fdcfd5f28058298bc63cf749d15837a9
Второй параметр в define
сейчас схема. Если вы передадите функцию в качестве второго параметра, вы получите эту ошибку, так как Vogel считает, что вы пытаетесь использовать Vogels 1.x:
if(_.isFunction(config)) {
throw new Error('define no longer accepts schema callback, migrate to new api');
}
Источник: https://github.com/ryanfitz/vogels/commit/6d5e70e4fdcfd5f28058298bc63cf749d15837a9
Так что проверьте второй параметр в вашем define
звонки. Это должна быть схема в формате JSON, а не функция. Пример из официальных документов:
var Account = vogels.define('Account', {
hashKey : 'email',
// add the timestamp attributes (updatedAt, createdAt)
timestamps : true,
schema : {
email : Joi.string().email(),
name : Joi.string(),
age : Joi.number(),
roles : vogels.types.stringSet(),
settings : {
nickname : Joi.string(),
acceptedTerms : Joi.boolean().default(false)
}
}
});