4

以下で作成された新しいプロジェクトがあるとします。

$ slc lb project myapp

' user ' モデルをディレクトリに配置されmodels.jsonた ' customer ' モデルに置き換えるにはどうすればよいですか? ./models顧客にはログイン/ログアウトなどのメソッドが必要であり、「ユーザー」は API として存在してはなりません。また、顧客モデルは動的であってはなりません。顧客が次のようなスキーマを持つ必要があるとしましょう。

  • 名前
  • Eメール
  • パスワード
  • 質問
  • 答え
  • 電話
  • 検証済み
  • データが作成されました

私はこれで数日間遊んでいますが、私のグーグルフーは私を失望させています。どんな助けでも感謝します。ありがとう。

4

1 に答える 1

4

これは慣用的な方法です:

  1. models.json、名前を に変更userCustomerます。

  2. models/customer.js、models.json で作成されたモデルにカスタム メソッドを追加します。

    var app = require('../app');
    var Customer = app.models.Customer;
    
    Customer.myfn = function(cb) {
      // etc.
      cb();
    };
    

また、顧客モデルは動的であってはなりません。顧客が次のようなスキーマを持っている必要があるとしましょう

strictプロパティをロックするために使用します。

{
  "Customer": {
    "options": {
      "base": "User",
      "strict": true
    },
    "properties": {
      // define properties (schema)
    }
  }
}

詳細については、モデル定義リファレンスを参照してください。

この回答の下のコメントに基づいて更新します

モデルをコード ファーストで作成することも可能です。LoopBackが導入される前に作成されたサンプル アプリのcustomer.jsを参照してください。models.json

コードで行うべきことは次のとおりです。

var app = require('../app');

var Customer = module.exports = loopback.createModel(
  'Customer',
  {
    name: 'string',
    // and all other more properties
  },
  {
    base: 'User',
    strict: true
  }
);

app.model(Customer);

これは基本的に、app.bootのすべてのエントリに対してによって実行されるコードと同じですmodels.json。おなじみの REST ルートをアプリケーションに追加する必要があります: GET /customersPOST /customers/loginPOST /customers/logoutなど。

動作しないコードを見て、「動作しない」とは正確に何を意味するのかを知らずに、あなたを助けることは非常に困難です.

于 2014-07-02T07:08:37.570 に答える