Page Contents

一般的な質問

StrongLoop は以下のオペレーティングシステムをサポートしています。

  • Red Hat Enterprise Linux (RHEL)/CentOS 6.3 (RPM)
  • IBM z systems 上の RHEL 6 と RHEL 7
  • Debian/Ubuntu 12.10 (DEB)
  • IBM z systems 上の SUSE Linux Enterprise Server 11・12 (Node 0.12.7 と 4.2.2 を使用)
  • Mac OS X Mountain Lion 10.8 (PKG)
  • Microsoft Windows 8, 2008 (MSI) 注意: Cygwinの使用はNodeがサポートしません。代わりに、コマンドラインツールはWindowsのコマンドプロンプトを使用してください。

LoopBackは無料ですか?いくらかかりますか?

LoopBack は無料で利用できる(サポート除く)オープンソースプロジェクトです。また、完全なサポートが付いた商用バージョンは、 IBM API Connect の一部として利用可能です。

開発者フォーラムやメーリングリストはありますか?

はい!LoopBack Google Group は、開発者が質問したり、 LoopBackをどのように使うかを議論するための場所です。ぜひ参加してください。

LoopBack Gitter channel はLoopBackの主要な開発者とリアルタイムに議論できます。

StrongLoop はまたLoopBackに関する話題のブログを公開しています。 最新の投稿リストは Blog posts を参照してください。

LoopBack向けのクライアントSDK はありますか?

LoopBackは、フレームワークによって生成されたREST APIサービスにアクセスするためのクライアントSDKを3つ持っています。

  • iPhoneとiPadアプリ用のiOS SDK (Objective-C)。詳細は iOS SDK を参照。
  • Androidアプリ用の Android SDK (Java)。詳細は Android SDK を参照。
  • HTML5 フロントエンド用の AngularJS (JavaScript)。詳細は AngularJS JavaScript SDK を参照。

LoopBack にはどんなデータコネクタがありますか?

LoopBack は、企業やその他のバックエンドデータシステムにアクセスするためのコネクタをいくつも提供しています。

データベースコネクタ:

その他のコネクタ:

加えて、LoopBackのオープンソースコミュニティの開発者によって作られた コミュニティコネクタ があります。

curl が私のLoopBackアプリへのリクエストに失敗するのはなぜですか?

If the URL loads fine in a browser, but when you make a curl request to your app you get the error:

curl: (7) Failed to connect to localhost port 3000: Connection refused

The cause is likely to be because of incompatible IP versions between your app and curl.

LoopBack, by default uses IP v4, and curl might be using IP v6. If you see IP v6 entries in your hosts file (::1 localhost, fe80::1%lo0 localhost), it is likely that curl is making requests using IP v6. To make request using IP v4, specify the --ipv4 option in your curl request as shown below.

$ curl http://localhost:3000 --ipv4

You can make your LoopBack app use IP v6 by specifying an IP v6 address as shown below:

app.start = function() {
  // start the web server
  return app.listen(3000, '::1',function() {
    app.emit('started');
    console.log('Web server listening at: %s', app.get('url'));
  });
};

突っ込んだ質問

LoopBackを使って作業し始めると、より突っ込んだ質問が出てくるでしょう。 いくつかの最も一般的なものがここに集められ、さらに簡単な回答とドキュメントへのリンクがあります。

リモートサーバーへのGETリクエストはどうやって実行するのですか?

第一に、REST コネクタ を使用するデータソースを設定しなければなりません。 データソースの設定を書くdatasources.json ファイルの中で、 REST APIに対する操作を operations プロパティで定義できます。

短いサンプルは loopback-example-rest-connector を参照してください。

アプリケーションに、JSONの代わりにXMLで応答させることができますか?

はい。server/config.json において、remoting.rest.xml プロパティを true にセットします。 詳細は config.json を参照してください。

アプリケーションからメールを送信するには?

簡単に書くとこうなります。

  1. email コネクタを使用するデータソースを設定する。
  2. 組み込みの Email モデルを emailデータソースに紐付けます。
  3. 設定したモデルの Email.send() を使ってメールを送信します。

短い例は loopback-example-app-logic を参照してください。

static ミドルウェアの使い方は?

static ミドルウェアで、アプリケーションが、HTML・CSS・画像・クライアント用JavaScriptファイルなどの静的なコンテンツを提供できるようになります。 追加するには、以下のようにします。

  1. middleware.json ファイルの中の既定の routes プロパティの内容を削除します。
  2. middleware.json ファイルに、プロジェクトの /client ディレクトリの静的コンテンツを提供するために、 以下の "files" プロパティを追加します。

    "loopback#static": {      
      "params": "$!../client"
    }
    

    もちろん、異なるディレクトリの静的コンテンツを使うために、値を変更することもできます。

詳細は、ミドルウェアの定義 を参照してください。 短い例は loopback-example-middleware を参照してください。

モデルがサポートしているフックの種類は何ですか?

LoopBackのモデルがサポートしているのは、

  • 操作フック はモデルがCRUD(作成・読取・更新・削除)操作を行う時に実行されます。
  • リモートフック は、リモートメソッドが呼び出される前後に実行されます。

LoopBack は JavaScript 設定ファイルをサポートしますか(JSONだけでなく)?

はい。LoopBack は既定の .json ファイルを .js ファイルで 上書き することができます。 詳細は、環境固有の設定のページを参照してください。

ユーザ管理の質問

詳細は、ユーザ管理および loopback-example-user-management の関連するコードの例を参照してください。

注:

新ユーザを登録するには?

  1. サインアップ情報を集めるためのフォームを作成します。
  2. 確認のメールを送るためのリモートフックを作成します。

注:

  • 実行時、user.verify は、与えられた オプション を使ってメールを送信します。
  • この例では、確認のメールは、 ユーザを /verified ルート にリダイレクトする ように設定されています。自分のアプリケーションでは、必要に応じて設定を変更してください。
  • The options are self-explanatory except typetemplate and user.
  • オプション の名前は、 typetemplateuser を除けば、名前で意味がわかると思います。
    • type - email という値でなければいけません。
    • template - 確認のメールに使用するテンプレートのパスです。
    • user - 指定された場合、このオブジェクトの中の情報がメール内の確認用リンクに使われます。

新ユーザ登録のために確認のメールを送るには?

前の質問の step 2 を見てください。

ユーザがログインできるようにするには?

  1. ログイン資格情報を受け付けるフォーム を作成する。
  2. ログイン要求を処理するルート を作成する。

ユーザがログアウトできるようにするには?

  1. Create a logout link with the access token embedded into the URL.
  2. URL中にアクセストークンを埋め込んだログアウトリンク を作成する。
  3. アクセストークンとともにUser.logout を呼び出す。

注:

  • アクセストークンの処理には、token ミドルウェアを使用します。 URLのクエリ文字列にaccess_token を提供する限り、ルートハンドラの req.accessToken プロパティでアクセストークンオブジェクトが提供されます。

登録済みユーザがパスワードをリセットできるようにするには?

  1. パスワードリセット情報を集めるフォームを作成する。
  2. パスワードリセット要求を処理するエンドポイントを作成する。 最終的には、User.resetPassword を呼出して、resetPasswordRequest イベントを発生させ、一時的なアクセストークンを作成する。
  3. resetPasswordRequest のイベントハンドラを登録し、登録済みユーザにメールを送るようにする。 例では、ユーザを 一時的なアクセストークンで認証されたパスワードリセットページ に誘導する URL を提供している。
  4. ユーザが新しいパスワードを入力し確認する パスワードリセットフォーム を作成する。
  5. パスワードのリセットを処理するエンドポイント を作成する。

注:resetPasswordRequest ハンドラのコールバックでは、 info オブジェクトが提供されます。 これには、パスワードリセットを要求しているユーザに関する情報が含まれています。

注:bodyParserloopback.token() を使用するように設定するのを忘れないでください。 server.js に例があります。