2016-12-24 4 views
0

私はnode.js用のVogels DynamoDBデータマッパーを使用していますが、DynamoDB(AWS上)で作業するのは非常に困難です。 DynamoDBローカルの場合、NOの問題があります。これはスキーマを設定し、node.jsアプリで完全に機能します。Vogels DynamoDBエラーが新しいAPIに移行する

Details:Error: define no longer accepts schema callback, migrate to new api 

事は、私は(https://github.com/ryanfitz/vogels

VOGELSの最新バージョンを使用していることを、なぜそれがへの移行を言っているされて、次のエラーを取得 - AWSにデプロイしかし

、新しいAPI? define

答えて

0

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) 
    } 
    } 
}); 
関連する問題