0

私たちのアプリケーションはnodejsexpressreactjs、および で構成されていnewformsます。残りの呼び出しを行うには、次を使用しています。

var RestClient = require('superagent-ls')

そして、次のような残りの呼び出しを行っています。

cleanBirthDate(callback) {
    var {birthDate} = this.cleanedData
    var formattedDob = moment (birthDate).format('DDMMYYYY')

    RestClient.get(Global.getBirthDateServiceUrl() + '/' + formattedDob)
        .end((err, res) => {
          if (err) {
            callback (err)
          }
          else if (res.clientError) {
            var message = errorsMappingSwitch(res.body.error)
            callback(null, forms.ValidationError(message))
          }
          else {
            callback(null)
          }
        })
  },

RestClient関連するコードを独自のファイルに移動し、RestCleint.jsそれを要求してアプリケーション全体で使用したいと考えています。そうすることで、一般化されたコード (エラー処理、ログ記録、エラー コードに応じた特定のエラー ページへのリダイレクトなど) を 1 か所に適用できます。

この方向の助けに感謝します。

4

2 に答える 2

1

私はあなたが必要とするのとまったく同じことをしました(スーパーエージェントを使用していても)。/utils フォルダーに API コードを含むモジュールを作成し、必要に応じてそれらを必要としました。さらに抽象化するために、CoffeeScript を使用して、BaseAPIObject から継承し、API.Posts.getAll().end() などを使用して呼び出すクラスを作成しています。

この記事は、独自のモジュールを作成する方法を理解するのに非常に役立ちました: Export This: Interface Design Patterns for Node.js Modules

于 2015-07-29T13:22:28.363 に答える
0

you can always require it like

RestClient.js

export default function callApi(callback) {
//your rest code
// use the callback here in the callback of your call.
}

app.js

import {callApi} from './RestClient';

callApi((err, result) => {
  if (err) console.log(err)
});
于 2015-07-29T00:49:05.243 に答える