2016-07-25 5 views
0

Javascriptファイルを使用して、ArcGIS Onlineからトークンを取得しようとしています。私はそれを試したときにしかし、それはJavascript - 解決方法 "キャッチされていないエラー:undefinedModule"

init.js:11 Uncaught Error: undefinedModule 

ファイル(GetAToken.js)に戻ってくる以下の通りです:

dojo.ready(init); 
var request = dojo.require('request'); // npm install request 

// generate a token with your client id and client secret 
function getToken(callback) { 
    request.post({ 
     url: 'https://www.arcgis.com/sharing/rest/oauth2/token/', 
     json: true, 
     form: { 
      'f': 'json', 
      'client_id': '<<MY_CLIENT_ID>>', 
      'client_secret': '<<MY_CLIENT_SECRET>>', 
      'grant_type': 'client_credentials', 
      'expiration': '1440' 
     } 
    }, function (error, response, body) { 
     console.log(body.access_token); 
     callback(body.access_token); 
    }); 
} 

そして、(HTMLファイルで)それを呼び出すビットは次のとおりです。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> 
<script src="https://esri.github.io/calcite-bootstrap/assets/js/bootstrap.min.js"></script> 
<link rel="stylesheet" href="https://js.arcgis.com/4.0/esri/css/main.css"> 
<script src="https://js.arcgis.com/4.0/"></script> 
<script src="GetAToken.js"> 
    var MyToken = callback(getToken); 
    alert(MyToken); 
</script> 
+0

あなたのコードに 'init.js'というファイルがありますか? 100%の問題ではありませんが、そのファイルの内容を見る価値があります。 – Toby

+0

いいえ。私はそれを取る方法を見つけて、それを追加する方法を見つけなければならない。 – user25730

+0

必ずしもそうではありません - エラーメッセージでは、エラーが発生したファイルの11行目です。見つけられれば、どのモジュールが未定義であるかを知る手がかりになるかもしれません。 – Toby

答えて

0

NodeJS(npm install request)からrequestJSを取得しようとしているようです。私は正しいですよ?

NodeJSはCommonJSを使用する必要がありますが、DojoはRequireJSを使用することに注意する必要があります。どちらもモジュール構造が異なります。詳細here

行中var request = dojo.require('request');requestモジュールが見つかりませんので、エラーが発生しています。

dojoでnodejsモジュールを取得する方法は、以下のようにdojo/nodeを使用することです。

require([ "dojo/node!request" ], function(request){ 
    // Utilise the "request" module 
}); 

が、これは役立ちましたDojo and Node.js

希望のためのチュートリアルを通過します。

PS:Esriにトークンを取得するための独自のリクエストオブジェクト(esri/request)があります。代わりにそれを使用することができます。

関連する問題