私はFoursquareを一定のチェックイン時間ごとにポーリングし、NoSQLデータベースに結果を保存/更新するサービスに取り組んでいます。 setIntervalでhttp.requestをラップし、データイベントエミッターを使用してチャンクレスポンスを集計する最良の方法はありますか? JSONを解析し、リクエストが完了したらNoSQL DBにプッシュするために、エンドエミッタを使用する予定です。思考?Node.jsを使用したPoll RESTサービス
6
A
答えて
9
あり、より良い方法であることが、私はちょうど次のようにRESTの応答を処理するために、イベントエミッタを使用して終了可能性があります
var fourSquareGet = {
host: 'api.foursquare.com',
port: 443,
path: '/v2/venues/search?ll=33.88,-119.19&query=burger*',
method: 'GET'
};
setInterval(function() {
var reqGet = https.request(fourSquareGet, function (res) {
var content;
res.on('data', function (chunk) {
content += chunk;
});
res.on('end', function() {
// remove 'undefined that appears before JSON for some reason
content = JSON.parse(content.substring(9, content.length));
db.checkins.save(content.response.venues, function (err, saved) {
if (err || !saved) throw err;
});
console.info("\nSaved from Foursquare\n");
});
});
reqGet.end();
reqGet.on('error', function (e) {
console.error(e);
});
}, 25000);
しかし、私はなぜ私はから「未定義」出て解析していたかわかりませんJSON私は四角形から受け取った。私は@occaslで答えを固定し、かつ明快にするために更新しました
0
私も同様の問題に遭遇していましたが、私は同様のテクニックを採用していました。 Here's where I got the idea from。うまくいけば、これはちょっと役立つでしょう。
+0
Thxを...私は同じ記事を見てだと思うが、それは少し古いように見えました。 – occasl
5
:
var https = require('https');
setInterval(function() {
var rest_options = {
host: 'api.example.com',
port: 443,
path: '/endpoint',
method: 'GET'
};
var request = https.request(rest_options, function(response) {
var content = "";
// Handle data chunks
response.on('data', function(chunk) {
content += chunk;
});
// Once we're done streaming the response, parse it as json.
response.on('end', function() {
var data = JSON.parse(content);
//TODO: Do something with `data`.
});
});
// Report errors
request.on('error', function(error) {
console.log("Error while calling endpoint.", error);
});
request.end();
}, 5000);
+5
将来的には私の回答を編集するだけで、問題は解決します。 – occasl
関連する問題
- 1. jax-rsを使用したRESTサービス:BeanCreationException
- 2. IErrorHandlerを使用したREST WCFサービスはSerializationExceptionsをキャッチします
- 3. Node.js Angular.jsを使用したCORSセッションクッキー
- 4. oAuth 2.0を使用したJerseyベースのRESTサービスのセキュリティー
- 5. SpringとHibernateを使用したREST Webサービス
- 6. AndroidクライアントとRPCを使用したREST Webサービス
- 7. SecurityContextを使用したREST Webサービスの認証方法
- 8. 春のApache CXFを使用したRESTサービスの作成MVC
- 9. WSDLを使用したRESTサービスの説明
- 10. WCF WebApiを使用した非同期RESTサービス
- 11. Node.JSでOAuthを使用してJIRA REST APIを認証
- 12. Node.jsを使用してREST APIに接続する
- 13. node.jsを使用したウェブスクレイピングサイト
- 14. Node.js Rest Framework
- 15. Node.JS HTTPリクエストを行うRESTサービスのコールバックを待ちます。
- 16. WCF Restサービスを使用してファイルをダウンロードしますか?
- 17. REST Webサービスを使用してデータベースを公開する
- 18. Jquery/javascriptを使用してRESTサービスを呼び出す
- 19. ストライプMVCを使用してRESTサービスを開発する
- 20. ストリームでアンドロイド/ httpclientを使用してjsonデータをRESTサービスにポスト
- 21. APIを使用して内部RESTサービスを公開する
- 22. モバイルアプリケーションで使用するためのGrails RESTサービスのセキュリティ
- 23. Node.js(Express)RESTサービスのPOSTメソッドが返されます404
- 24. Javaを使用してRESTサービスから読み取る
- 25. Poll Muleを使用してURLからデータを投稿する
- 26. node.js単一ページアプリケーション用のJSON/RESTフレームワーク
- 27. C#ASP.NET MVCを使用してWCF Restサービス(JSON)を使用するMVC
- 28. Azure Active DirectoryをSpringブートRESTサービスのOAUTH2認証サービスとして使用する
- 29. 複合オブジェクトを使用したREST WebサービスからのJSONオブジェクトの返却
- 30. DEMOへのJqueryスクリプトSlim Frameworkを使用したPHP RESTサービスのテスト
あなたが 'content'を初期化したことがないので、 'undefined'を解析しなければならない理由があります。 "var content;"の代わりに "あなたは "var content = '';"あなたは何も剥がす必要はありません。 (文字列 'foo'を 'undefined'に追加すると、 "undefinedfoo"という文字列が返されます) –
同じことをやってしまったのですが、ここで更新したことはありません。 – occasl