2017-07-03 11 views
0

sequelize 4.2ですべてのモデルに適用または継承されるカスタムインスタンスメソッドを作成するにはどうすればよいですか?後継3では、他のすべてのモデルに拡張されたメインモデルの「定義」セクションに「instanceMethods:{custom1:function(){}}」を使用しました。私たちは4.0を続けることでどのように同じ行動を達成しますか?Sequelize 4.0:すべてのsequelizeモデルのカスタムinstanceMethod

+0

メインモデルのものがどのように働いているのかを指摘できますか? 自分で何も見つかりませんでした。それは本当に役に立ちます – Shivam

+0

こんにちは@ Shivam、私は以前は以下のようなメインの "define"オブジェクト(例:V3のドキュメント[https://sequelize.readthedocs.io/en/v3/docs/getting-started/]の "アプリケーションワイドモデルのオプション"セクションから抜粋)→ "Sequelizeコンストラクタは、 A定義されたすべてのモデルのデフォルトオプションとして使用されるオプションを定義する「 '{ \t //タイムスタンプ属性(updatedAt、createdAt) \tタイムスタンプを追加しません。偽、 を \t //インスタンスメソッド - すべてのモデルで \t instanceMethods継承:{ \t \t _myCustomMethod:機能(){ \t \t \t //ここにいくつかのプロセス... \t \t} \t}} ' – J1606

+0

をと私たちのすべてのモデルは、この「ベース」モデルを定義オプションで拡張しました。そして、今度は4.0を続けることで、モデルのプロトタイプ上で直接instanceMethodが宣言されています...カスタムinstanceMethodをすべてのモデルに適用したい場合、どのようにして3.0を継承するのと同じ動作を実現しますか? ご協力ありがとうございます – J1606

答えて

0

インスタンスメソッドは「定義」セクションとは独立して呼び出されます。私はまだUserモデルがインポートされている任意のファイルでインスタンスメソッドを呼び出すことができます

const User = sequelize.define('users', { 
name: {type: Sequelize.TEXT} 
}); 
User.prototype.custom1 = function() { 
    //function 
}; 

:私はちょうど私のはこのような何かを行うことにより、V4で動作するようになりました。私はこれが助けて欲しい!