2016-10-06 5 views
0

元のMEAN.jsフレームワークに基づいてWebアプリケーションを作成しています。私のAngularJSファイルで$ http.get()メソッドを使用してローカルのjsonテストファイルを要求したいときは、インデックスhtmlコンテンツを返しました。ルーティングに問題がありますか?私は元のmean.jsルーティングコード(https://github.com/meanjs/mean)を変更せず、home.client.controller.jsファイルに$ http.get()メソッドを追加しました。誰もこれで私を助けることができますか?ありがとう!

答えて

0

これは、アプリでその特定のGETリクエストのエンドポイントを定義していないために起こりそうです。

サーバーに要求するたびに(たとえば、GET要求が/my-request)nodejs/expressがMEAN.jsで構成され、サーバーがその要求のエンドポイントを見つけようとします、その要求は(/modules/core/server/routes/core.server.routes.jsで指定)は、この特定のコードブロックによって処理される。基本的にインデックスビューをレンダリングする

// Define application route 
app.route('/*').get(core.renderIndex); 

を。

カスタムモジュールを使用しているかどうかはわかりませんが、MEAN.jsでそのリクエストを別の方法で処理したい場合は、カスタムモジュールルートファイルでエンドポイントを指定できます(またはcore.server.controller.js中)ので、のような:

// Define application route 
app.route('/my-request').get(core.sendMyJSON); 

このルートが置かれなければならないので、私は前に述べた前に1、注意してください、そうでない場合は、あなたの要求はまだ同じように処理され、インデックス・ビューがレンダリングされます再び奉仕した。あなたは、それはいくつかの調整を成し遂げることができるはず

exports.sendMyJSON = function (req, res) { 
    // logic to serve the JSON file 
}; 

この方法:

次に、あなたはその要求を処理するために呼び出されるべきコントローラを作成する必要があります。

サイドノート: 私は全くわからないが、私は、あなたのアプリの公開ディレクトリにJSONファイルを置く場合は、直接、余分なロジックを必要とせずにそれにアクセスすることができるはずだと思います。

関連する問題