2017-06-26 22 views
1

私はVue.JsでAWS API GatewayによってホストされているAPIにアクセスしています。Vue.js 2.0でJavascript用AWS SDKを使用

ここにかなり良い指示があります。http://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-generate-sdk-javascript.html

私は、それぞれが異なるAPI GET呼び出しからデータを取得するさまざまなコンポーネントを持っています。当初、私は私のindex.htmlにすべてのスクリプトファイルを追加し、次のことをやってみました:

RetailerDetails.vue:動作しませんでした

<script> 

export default { 
    name: 'RetailerDetails', 
    mounted() { 
     var apigClient = apigClientFactory.newClient({ 
      accessKey: 'blah', 
      secretKey: 'blah', 
     }); 

     apigClient.businessGet = function (params, body, additionalParams) { 
      if (additionalParams === undefined) { additionalParams = {}; } 

      apiGateway.core.utils.assertParametersDefined(params, [], ['body']); 

      var businessGetRequest = { 
       verb: 'get'.toUpperCase(), 
       path: pathComponent + uritemplate('/business').expand(apiGateway.core.utils.parseParametersToObject(params, [])), 
       headers: apiGateway.core.utils.parseParametersToObject(params, []), 
       queryParams: apiGateway.core.utils.parseParametersToObject(params, []), 
       body: body 
      }; 

      return apiGatewayClient.makeRequest(businessGetRequest, authType, additionalParams, config.apiKey); 
     }; 
    }, 
} 

、私はにReferenceErrorを得た:apigClientFactoryではありません定義された。

だから、私は私のindex.htmlのうち、スクリプトタグを取り、私のコンポーネントに以下の行を追加してみました:

require('../assets/js/lib/axios/dist/axios.standalone.js'); 
require('../assets/js/lib/CryptoJS/rollups/hmac-sha256.js'); 
require('../assets/js/lib/CryptoJS/rollups/sha256.js'); 
require('../assets/js/lib/CryptoJS/components/hmac.js'); 
require('../assets/js/lib/CryptoJS/components/enc-base64.js'); 
require('../assets/js/lib/url-template/url-template.js'); 
require('../assets/js/lib/apiGatewayCore/sigV4Client.js'); 
require('../assets/js/lib/apiGatewayCore/apiGatewayClient.js'); 
require('../assets/js/lib/apiGatewayCore/simpleHttpClient.js'); 
require('../assets/js/lib/apiGatewayCore/utils.js'); 
require('../assets/js/custom/apigClient.js'); 

これはどちらか動作しません、今私はにReferenceErrorが出る:見つけることができません変数:CryptoJS

これは私が理解したところからですが、フールを正しく参照していないためですか?

何をする必要がありますか?

答えて

2

assetsフォルダにjavascriptファイルを置かないでください。代わりにそれらを静的フォルダに入れてください。 CLIインストールを使用している場合、Webpackはアセットをソートし、イメージやフォントなどの処理を行いますが、javascriptファイルは処理しません。

<script type="text/javascript" src="/static/apigClient.js"></script> 

機能は私のVueのコンポーネントに用意されています。私はそれらを持って、その後/static/js/よう/static/か何かにファイルを置くと

。たぶん、グローバル名前空間を汚染しない、より良い方法があるかもしれませんが、これは非常に簡単な解決策です(それはあなたにも当てはまると仮定します)。

+0

お返事ありがとうございます。私はそれを試みましたが、同じReferenceError:変数を見つけることができません:apigClientFactory "さらに、/ dist/versionsを参照するようにindex.htmlを変更しました。 – Evonet

+1

Bummer。ブラウザのコンソールに表示されますか?そうでない場合は、すぐに読み込まれないことがあります。

関連する問題