callback
はVOGELS 2.0で除去した。 https://github.com/ryanfitz/vogels/commit/6d5e70e4fdcfd5f28058298bc63cf749d15837a9
define
の2番目のパラメータは、現在のスキーマです。あなたは2番目のパラメータとして関数を渡す場合フォーゲルはyour'reは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
だからあなたの2番目のパラメータをチェック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)
}
}
});