2016-06-01 19 views
3

私は初心者であり、実際のプロジェクトでNode.jsとExpressを使用したのは初めてです。Node.js/ExpressのURLからJSONオブジェクトを取得する方法

私は単純なNode.js/Expressプロジェクトを持っており、URLからJSONオブジェクトを読みたいと思っています。その後、iframeを使用して外部のWebサイトからhtmlを表示する別のURLを作成します。しかし、何も私はtestapi.jadeビューで呼び出される関数を/recentreports定義しようとしてい

var express = require('express'); 
var router = express.Router(); 
var request = require('request'); 

// Urls for App Center REST functions 
var url = 'https://someserver.com/appserver/portal/api/1.0/results/recent'; 

/* GET list of recent reports */ 
router.get('/testapi', function(req, res, next) { 
    res.render('testapi', { title: 'List Recent Reports' }); 
}); 

/* TEST: function to GET report list */ 
router.get('/recentreports', function(req, res){ 
    request({ 
    url: url, 
    json: true 
    }, function (error, response, body) { 
     if (!error && response.statusCode === 200) { 
     console.log(body) // Print the json response 
    } 
    }) 
}); 

は私がオンライン「要求」モジュールについて読んないと、私はこれらの線に沿って何かをする必要があることを知っています私はページを読み込むとコンソールに印刷され、私はひどく間違って何かをやっていると思う。

私の質問は以下のとおりです。

  1. は、どのように私は私のアプリの中にJSONを読んでください、どこでこのコードを行くには(index.js、app.js、testview.jade等...?)

  2. 私が構築したURLを、そのコードが存在する場所から.jadeビューにエクスポートするにはどうすればよいですか?

+0

「JSONを自分のアプリに読み込む」と「作成したURLをどこからエクスポートするのですか」とはどういう意味ですか? – peteb

答えて

1

サーバーから応答が送信されなかったため、ブラウザコンソールに何も記録されませんでした。応答はサーバーのコンソールにのみ記録されました。

データを送信する'recentreports'ルートのコードをリファクタリングする必要があります。この応答は'/recentreports'ルートへのAJAX呼び出しを介してtestapi.jadeによって受信される

... 
function (error, response, body) { 
    if (!error && response.statusCode === 200) { 
    res.send(body) // Send the response to the client 
    } 
} 
... 

:あなたは、単純なres.sendコールを使用することができます。 AJAX呼び出しは、testapi.jadeファイルをソースとするJavascriptファイルで定義できます。

作成されたURLは、同じtestapi.jadeファイル内に存在するので(AJAX呼び出しの結果から作成した後に)エクスポートする必要はありません。

+1

私は今見ていると思うので、私はすでにJSONをクライアント側アプリケーションに持っていて、ビジネスロジックをそこで処理することができます。意味をなさない私はAJAXで遊ぶ必要があります - この種のものにはまだ新しいです。ノード/エクスプレスのこの種のもののための推奨リンク? – Sledge

関連する問題