簡體   English   中英

在node.js中處理大型json數組

[英]Process large json array in node.js

我使用axios從API獲取數據,然后在我的node.js應用程序中使用數據。 數據是300個對象的數組,如下所示:

{
  'location': 'us',
  'date': '156565665',
  'month': '5.1',
  'day': '6',
  'type': 'default',
  'count': '7',
  'title': 'good',
  'filter': 'no',
  'duration': 'short',
  'options': 'no',
}

在我得到這個對象數組后,我需要轉換每個對象:用新的替換它的鍵並將一些值轉換為適當的數據類型(string to float):

{
  'loc': 'us',
  'date_new': parseInt('156565665'),
  'month': parseFloat('5.1'),
  'day': parseInt('6'),
  'type': 'default',
  'count': parseInt('7'),
  'title': 'good',
  'filter': 'no',
  'duration': 'short',
  'options': 'no',
}

現在我只使用for循環,並在每次迭代中轉換每個對象的鍵和值。 但是會有成千上萬個像這樣的對象。 它將成為處理這些數據的工作者。 在node.js中處理它們的最佳方法是什么?

我將使用一些現成的隊列,如蜜蜂隊列或resque,但即使在這種情況下,最好使代碼“node.js方式”,這對我的對象數組的處理不會減慢節點循環。 也許使用將每個對象推送到promises數組並將它們放到Promise.all()中(但Promise.all()中會有300個promise)? 在node.js中進行這樣的硬計算的最佳方法是什么?

但是會有成千上萬個像這樣的對象。 它將成為處理這些數據的工作者。 在node.js中處理它們的最佳方法是什么?

我會推薦

var request = require('request')
  , JSONStream = require('JSONStream')
  , es = require('event-stream')

request({url: 'URL'})
  .pipe(JSONStream.parse('rows.*'))
  .pipe(es.mapSync(function (data) {
    console.error(data)
    return data
  }))
  • 解析后,將它們存儲在數據庫中而不是立即處理它們,因為對大對象的硬計算將阻止Nodej上的處理。

  • 從數據庫中逐個挑選它們以進行處理。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM