我的工作,將輪詢每分鐘四方某些簽入左右,保存/更新導致的NoSQL數據庫的服務。用setInterval封裝http.request並使用數據事件發射器聚合分塊響應是最好的方法嗎?我計劃使用最終發射器來解析JSON,並在請求完成時將其壓入NoSQL DB。思考?投票REST服務與Node.js的
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我從四方收到。
0
當我遇到了類似的問題,我採用了類似的技術,它的工作搞好。 Here's where I got the idea from。希望這會有所幫助。
+0
THX ...我想我看了看同一篇文章,但它似乎有點老了。 – occasl
5
我固定由@occasl答案,並更新爲清楚:
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. AngularJS PUT投票應用到REST服務
- 2. 投票服務 - C#
- 3. 投票與長投票
- 4. 投票 - 票數與投票率?
- 5. 使用REST執行投票
- 6. 投票窗口服務的計時器
- 7. Erlang的tcp服務器投票踢
- 8. 評論與投票行爲投票
- 9. Node.js REST服務 - express +主幹
- 10. 投票使用Ajax和Dojo服務器
- 11. 投票投票牆
- 12. ASP.NET Webservice中的投票服務與Backgroundworker不會繼續
- 13. 推送與投票的訂閱/發佈服務器
- 14. 投票重複投票
- 15. node.js中的假REST服務器
- 16. 投入到BI REST服務器失敗
- 17. 基於投票投票的JQuery多個百分比投票
- 18. 獨特的男女投票誰投票
- 19. 與jQuery推遲投票
- 20. 投票系統與jQuery AJAX
- 21. 問題跟蹤與投票
- 22. Node.JS在REST服務中運行Sandbox
- 23. 使用asp.net和sql投票投票
- 24. AngularJS投票系統 - 防止多投票
- 25. 投票欄顯示沒有投票
- 26. 如何投票投票系統?
- 27. Django投票:按投票排序
- 28. 檢查用戶是否投票投票
- 29. 使用Node.JS作爲REST服務器和Web服務器
- 30. 谷歌驅動器選擇器與服務帳戶的oauth2(P12文件)投票
你必須解析'undefined'的原因是你從未初始化過'content'。如果,而不是「var content」;你有「var content ='';」你不需要去掉任何東西。 (當你將一個字符串'foo'添加到'undefined'時,它會給你一個字符串「undefinedfoo」。) –
感謝你補充一點,我做了同樣的事情,但我想我從來沒有在這裏更新過。我的回答。 – occasl