callback
indefine
は Vogels 2.0 で削除されました:
https://github.com/ryanfitz/vogels/commit/6d5e70e4fdcfd5f28058298bc63cf749d15837a9
の 2 番目のパラメーターdefine
は schema になりました。関数を 2 番目のパラメーターとして渡すと、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#diff-6d186b954a58d5bb740f73d84fe39073R121
define
そのため、呼び出しの 2 番目のパラメーターを確認してください。これは、関数ではなく、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)
}
}
});