ので、私は最近ので送信REST応答が
(私はたくさんたくさんで遊んでてきたが、今、私は実際に何かを作成しています)ベースのWebアプリケーションをノードAにジャンプを取ってきたJSONをパースしますExpress、MongoDB、Node(Herokuで公開)を使用して簡単なREST APIを設定しました ExpressとNodeでAPIと通信し、応答を解析して実際にクライアント/ Webアプリケーションを作成しようとしていますオブジェクト。
私がしたいのは、APIの現在のエントリを単純なページにリストすることです。 私は '/ home'へのルートを作成しました。 それはあまりにもうまく動作するハンドルバーテンプレートを使用します。
私はそうのようなビューをレンダリングするために「home.js」ファイルを使用し:
var request = require('request');
exports.index = function (req, res) {
res.render('home', {
title: 'home'
});
};
私はここに別のものを試してみたが、私はのような何かやるたび:
var request = require('request');
exports.index = function (req, res) {
res.render('home', {
title: 'home',
items: getItems
});
};
var getItems = function(req, res, next) {
request(process.env.API_URL, function(err, resp, body) {
if (!err && resp.statusCode == 200) {
return body;
}
}
};
をそれを返しますボディの代わりにrequest
オブジェクト/関数(ハンドルバーで解析することができます:P)
私はこの呼び出しで多くのバリエーションを行いました(exporst.index
fそれ以外の場合は、オプション変数と別のコールバック(request(options, callback)
のように)を作成しますが、それらはすべてエラーか、request
オブジェクト/関数を返します。
return body;
の代わりにconsole.log(body);
を実行すると正しくログに記録されます。
私は今、サークルで動いています。任意のヘルプ:)
これは意味があります。私は 'var getItems = request(porcess.env.API_URL、function(err、resp、body){return body;});'のようなものを実行すると同じ結果を得ました。私は変数を呼び出すときに関数を実行しないのですか?答えは、私が変数を指しているにすぎないが、これはうまくいかないはずだからだ。 – Shuyinsama
あなたは非同期HTTPリクエストを作成していますが、それをvarに割り当てると動作しません。あなたは、コールバック上のデータを取得するか、またはその要求を約束で包んで、ルートハンドラに渡す必要があります。 –
ありがとうございました。それは今よりも男性の感覚です! – Shuyinsama